Avatar billede jumario Nybegynder
20. juni 2000 - 11:06 Der er 8 kommentarer og
2 løsninger

SQL Forvirring

Da der ik findes nogen dedikeret emne om SQL går jeg ud fra at dette er det mest relevante sted at spørge. Er der nogen der har en link, eller kan forklare hvordan alle de der underlige tegn i SQL virker, der er ikke noget der kan forvirre mig mere end alle de ' (single quotes) og " (double quotes) og & (ambersand) tegn der konstant dukker op mellem hinanden uden nogen (for mig virkende) logsik sammenhæng. Hvordan virker det?? 60 Point's for en god forklaring :o)
Avatar billede erikjacobsen Ekspert
20. juni 2000 - 11:15 #1
&-tegnet har ikke noget med SQL at gøre. Du må tænke på ASP.
I ASP kan man sætte en simpel SQL-streng på denne måde:

  sql = "select * from tabellen where id = 7"

men hvis nu tallet 7 er noget der kommer fra en variabel i ASP, så skal du netop bruge &-tegnet

  envariabel = 7
  sql = "select * from tabellen where id = " & envariabel

Og den variabel kan både være et recordser, rs("navn"), noget fra en form, request.form("navn") osv.

Hvis det havde været defineret i databasen som en streng skulle der så '-er omkring. Uden variabel:

  sql = "select * from tabellen where navn = 'jumario'"

og med

  navnet = "jumario"
  sql = "select * from tabellen where navn = ' & navnet & '"

"-erne og &-erne er kun ASP, og '-erne er SQL.
Avatar billede erikjacobsen Ekspert
20. juni 2000 - 11:15 #2
Hovsa, den sidste linie skal være:

  sql = "select * from tabellen where navn = '" & navnet & "'"
Avatar billede jumario Nybegynder
20. juni 2000 - 11:25 #3
Okay nu giver det så småt lidt mere mening, men der er stadig ting jeg undrer mig over. Hvorfor skal

envariabel = 7
  sql = "select * from tabellen where id = " & envariabel

Ikke i stedet være

envariabel = 7
sql = "select * from tabellen where id = & envariabel"

Slutter man ikke sqlstrengen med det " du sætter midt i? Hvordan kommer det sidste med?
Avatar billede lrj Nybegynder
20. juni 2000 - 23:45 #4
Forskellen er at alt i " er en streng, og ikke fortolkes af ASP-tingelingen. Så det er først når du slutter strengen med et " og beder ASP fortolkeren om at tilføje værdien af envariabel med &-tegnet samt navnet på variablen.

See?
Avatar billede jumario Nybegynder
21. juni 2000 - 09:01 #5
Ja nu er jeg vist med! Mange tak :o)
Avatar billede jumario Nybegynder
21. juni 2000 - 09:06 #6
lrj og erikjacobsen

Skriv lige et hurtigt svar til, så i ka få nogen Points ;o)
Avatar billede lrj Nybegynder
21. juni 2000 - 18:41 #7
tak :)
Avatar billede raistlin Nybegynder
22. juli 2000 - 01:46 #8
Desværre har både oracle og microsoft lavet deres egne \"tilføjelser\" til den sql standard de bruger.

Man kan begge steder godt bruge standard sql, men uden at udnytte databasen fuldt ud.

Alt dette gør det bare mere besværligt at flytte mellem platforme suk. Det gælder også de special tegn du efterlyser.

Det interne script sprog i databasen har en tendens til at hælde over i sql\'en til det enkelte system. Det vil sige plsql hos oracle og tsql hos ms.

Jeg har kigget efter en side med en beskrivelse af den officielle sql standard, men har ikke lige kunnet finde en, er der nogen derude der kan??
Avatar billede cktarget Nybegynder
03. august 2000 - 21:28 #9
Til Raistlin

Jeg har engang i tidernes morgen lavet en komplet beskrivelse af SQL-92 standard, hvis du sender mig en mail på

kedde@imada.sdu.dk

Kan vi nok finde ud af at du kan få den.

mvh kedde
Avatar billede erikjacobsen Ekspert
03. august 2000 - 21:51 #10
Jeg opdager nu jumarios kommentar fra 21-06 2000 09:06:40 - og jeg vil da gerne give
dig et svar.... ;--)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester