Avatar billede mjen000 Nybegynder
21. august 2003 - 12:57 Der er 4 kommentarer og
1 løsning

Problemer med SQL

Hej

Jeg har lavet en stump asp der kan vise indholdet af en database på en html side. Men der skal kun vises poster tilhørende den bruger der er logget ind i systemet. Jeg bruger en session variabel med brugernavnet i min SQL streng hvilket giver følgende fejl: Expected end of statement.

<%
    Set Conn = Server.CreateObject("ADODB.Connection")
    Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ="&Server.MapPath("../../../database/fotoceller.mdb")
    Set RS = Server.CreateObject("ADODB.Recordset")
    SQL = "Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn=session("brugernavn")"
    Set rs = Conn.Execute(SQL)
    Do While Not rs.EOF

'Vis indholdet af database
Response.Write " </a>&nbsp;<a href='edit.asp?ID=" & rs("ID") & "'>Rediger</a>&nbsp;&nbsp;&nbsp; Bus:&nbsp;" & rs("bus") & "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & " Dato:&nbsp;" & rs("dato") & "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & " Fotocelle 1 aflæsning:&nbsp; " & rs("Fotocelletal1") & "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;" & " Fotocelle 2 aflæsning:&nbsp;" & rs("Fotocelletal2") & "<br><br><hr>"

'gå til næste post
  rs.MoveNext

' Looping igennem tabellen
  Loop

'luk tabellen og forbindelsen til databasen
rs.Close
Set rs = Nothing

%>

Venlig hilsen
Morten
Avatar billede anhansen Nybegynder
21. august 2003 - 13:01 #1
Måske det hjælper at bruge enkeltplinger.. ' ' rundt om det sidste 'brugernavn' så det bliver

SQL = "Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn=session('brugernavn')"

Har du ikke også en del forskellige steder hvor du bruger brugernavn variablen. Du er sikker på at det er den samme variabel der skal bruges alle steder. WHERE klausulen virker lidt underlig synes jeg.
Avatar billede dk_akj Nybegynder
21. august 2003 - 13:01 #2
SQL = "Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn='" & session("brugernavn") & "'"

//akj
Avatar billede mjen000 Nybegynder
21. august 2003 - 13:11 #3
Hej akj

Det var lige det der skullet til - tak for hjælpen!

MVH
Morten
Avatar billede dk_akj Nybegynder
21. august 2003 - 13:18 #4
Selvtak.

For lige at forklare det så du selv fanger fejlen en anden gang så var fejlen at det du sendte til db'en dette:
Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn=session("brugernavn")

Databasen kender jo ikke dine sessions så derfor skulle der lige et & ind.
Databasen får nu følgende forespørgsel:
"Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn=kurt

Databasen tror nu at kurt er en variabel og det går ikke, detfor skal der enkeltgnyffer om kurt:
"Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn='kurt'

En metode til at opdage sådanne fejl er f.eks:

SQL = "Select ID, vogn, dato, fotocelletal1, fotocelletal2, brugernavn FROM fotocelletal WHERE brugernavn=session("brugernavn")"
response.write SQL  ' udskriver den sql der sendes til databasen

response.end  ' stopper kodeafviklingen
    Set rs = Conn.Execute(SQL)


//akj
Avatar billede mjen000 Nybegynder
21. august 2003 - 13:25 #5
Tak for forklaringen - det var rart at få en forklaring på dansk når man er nybegynder.
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
Kurser inden for grundlæggende programmering

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