Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Kör egen funktion i SQL

Postades av 2005-01-19 13:00:21 - Edward Jewson, i forum asp.net generellt, Tråden har 25 Kommentarer och lästs av 457 personer

Hej, jag använder urlrewrite och har en funktion för att byta ut vissa tecken i titlarna på saker, sen när jag ska hitta rätt post så måste jag skriva om det som är i kolumen för att kunna jämföra och då vill jag alltså köra min funktion på den kolumen. Det är MySQL som jag använder.

Ex. strSQL = "Select * from tabell where minFunktion(kolumnen) = '"+ Request.Querystring["title"] +"'"


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 13:18:54 - Per Persson

Du kan inte köra en ASP-funktion i MySQL. Du får skapa ett särskilt uttryck i MySQL för att göra det.

Kan du förklara vad det är som måste bytas ut?


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-19 13:19:58 - Edward Jewson

Ganska många tecken, men typ
!, ?, ", *, /, (, ), mellanlsag
med mera.


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 15:39:03 - Ola Lindfeldt

I MS SQL Server man man skapa User Defined Functions, men det hjälper väl inte dig just nu..


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 16:07:19 - Per Persson

Hmm... Det verkar som det inte fanns någon bra funktion för att byta ut flera tecken.

Kan du förklara varför du behöver byta ut tecknen?


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 16:12:31 - Johan Normén

"Hej, jag använder urlrewrite och har en funktion för att byta ut vissa tecken i titlarna på saker, sen när jag ska hitta rätt post så måste jag skriva om det som är i kolumen för att kunna jämföra och ..."

Varför inte bara köra en funktion på din Request.Querystring["title"] ???

<code>
strSQL = "Select * from tabell where kolumnen = '"+ minFunktion(Request.Querystring["title"]) +"'"
</code>

Eller satte du den på kolumnnamnet av någon anledning?

Mvh Johan


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-19 16:54:00 - Edward Jewson

Jo det fanns en anledning, eftersom querystringen kan se ut såhär: "artikelns-titel" medan i databasen så är det "artikelns titel" och kom ihåg att det är inte bara mellanslag som byts ut därför är det lite svårt att byta tillbaka...


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 17:45:41 - Jimmy Mattsson

Borde det inte vara

strSQL = "Select * from tabell where "+ minFunktion(kolumnen) +" = '"+ Request.Querystring["title"] +"'"

eller har jag missat något?

Har du dynamiska kolumner eller nått? Hur ser din databas ut?


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-19 21:18:50 - Johan Svensson

Nästan Jimmy, nästan....

För att vara helt korrekt skall det vara

<code>
strSQL = "Select * from tabell where " & minFunktion(kolumnen) & " = '" & Request.Querystring["title"] & "'"
</code>

fast Jimmys variant fungerar förmodligen för de flesta fall också. Dock kan det bli olyckligt om det hamnar siffror någonstans då det i Jimmys fall kan bli en matematisk addition istället för sträängsammanslagning.

// Johan - som är en petimeter ;-)


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 22:00:46 - Per Persson

Det där kommer inte att fungera...


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-19 22:10:54 - Johan Svensson

Vilket och varför?


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-19 22:31:06 - Per Persson

Ditt, Johan, fungerar inte som en lösning på trådens problem. Edward har inte en variabel som heter kolumnen och som han vill köra en funktion på innan han stoppar in den i SQL-satsen. Han vill köra en funktion på själva kolumnen i databasen.


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 01:08:19 - Johan Svensson

aaahhh...

Där fick jag äta upp för att jag var en petimeter... :-P

Jag förutsatte att det var en variabel. Det framgår förvisso inte av frågan, men om det är en konstant så behöver man ju inte köra funktionen alls utan skriva rätt från första början istället... Jag vet inte riktigt vad jag har missat i frågeställningen här, men som PP påpekar så var nog mitt tidigare antangande felaktigt, men jag vet inte hur det skall tolkas istället.

Kanske ett förtydligande från ursprungliga frågeställaren hjälper här. :-)


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-20 07:48:55 - Johan Normén

Nu får ni ta om det här igen...
Antingen är jag trög, för trött eller så är jag inte alls trög bara förvirrad :-)

Är det texten i databasen som skall formateras eller är det kolumnnamnen?

Då är frågan varför skicka kolumnnamn i querystring? Säkerhetsmässigt är detta faktiskt inte ett så
bra allternativ.

Sedan andra frågan, varför skall kunden skriva kolumnanamnet själv? om det nu inte är som jag först tolkade det datan i databasen som de anger?

Återigen är jag inne på det jag skrev att man kör formateringen på querystring värdet i så fall.

För detta tolkar jag.
"...är i kolumen för att kunna jämföra och då vill jag alltså köra min funktion på den kolumen"

att nått finns i kolumnen alltså ett värde och det är detta värde du vill formatera men säger att du skall köra din rutin på kulomnen och din pseudo kod ser ut så här.

<code>
Ex. strSQL = "Select * from tabell where minFunktion(kolumnen) = '"+ Request.Querystring["title"] +"'"
</code>

Alltså är det inte värdet du vill ändra utan hur kolumen ser ut i din selectfråga? Du måste väl med att det är titel värdet som skall formateras och inte sj'lka kolumnnamnet?

Måste ha missat nått annars? om inte så tja då har du min lösning ovan som gör det du vill göra ..

Mvh Johan


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 10:45:15 - Per Persson

<b>måste jag skriva om det som är i kolumen</b>

Det är värdena i kolumnen som skall göras om.

Hade de t.ex. bara behövt omvandlas till versaler hade SQL-satsen sett ut så här:
<code>strSQL = "Select * from tabell where upper(kolumnen) = '"+ Request.Querystring["title"] +"'"</code>

Men nu är det mer avancerade omskrivningar som behöver göras.


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-20 12:17:35 - Jimmy Mattsson

Johan,

antar att du skriver i VB.Net, jag skriver i C# och då kan man inte använda & som du gör :)


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 12:56:33 - Johan Svensson

He he,

Du har helt rätt.. Värst vad jag gör bort mig i denna tråden... :-)

// Johan


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-20 13:03:24 - Edward Jewson

Ser att det har kommit en del förvirringar i tråden, men det är precis som Per säger att det är värdet i en kolumn jag vill formatera för att kunna jämföra den med min querystring.


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 13:08:10 - Johan Svensson

Okej,

Få se om jag fattat rätt denna gången....

Du har alltså oformatterade värden i databasen som du vill jämför med en formaterad input.

I ditt fall hade jag sett till att data i databasen var formatterat från första början. Antingen genom att formattera den aktuella kolumnen, eller om du måste ha kvar orginalet genom att spegla till en ny kolumn som är formatterad på samma sätt som inputdatat.

På så sätt lyfter du ut formatteringen till att bli en engångssak som sparar run-time prestanda, förutom att det löser ditt problem.


Hoppas detta var hjälp nog.


// Johan


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 13:32:06 - Johan Normén

Edward...

Då säger jag samma sak ingen då som i min första post ;-)
----------

"Hej, jag använder urlrewrite och har en funktion för att byta ut vissa tecken i titlarna på saker, sen när jag ska hitta rätt post så måste jag skriva om det som är i kolumen för att kunna jämföra och ..."

Varför inte bara köra en funktion på din Request.Querystring["title"] ???


strSQL = "Select * from tabell where kolumnen = '"+ minFunktion(Request.Querystring["title"]) +"'"


Mvh Johan

Johan Normén
Blog: http://www.johannormen.com
[.Net Arkitekt Moderator]

-------------


Svara

Sv:Kör egen funktion i SQL

Postades av 2005-01-20 13:33:37 - Per Persson

Jag passar på att repetera en fråga jag skrev tidigare:
<b>Kan du förklara varför du behöver byta ut tecknen?</b>

Ge gärna litet exempel på hur data ser ut i tabellen.


Svara

Sv: Kör egen funktion i SQL

Postades av 2005-01-20 19:17:36 - Edward Jewson

Jag byter för att de ska funka i URLer men byter till egna tecken för att få bättre sökmotorsoptimering.

Men det får väl antagligen bli så som Johan S. Säger.


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 602
27 953
271 705
599
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies