ampyMedlem sedan feb. 20011 498 inlägg Har denna SQL-sats:
SQL = "SELECT * From forum where id = "&Request.QueryString("id")&" AND lock = 'yes'"
Får detta felmeddelande:
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax near 'lock = 'yes'' at line 1
/forum.asp, line 3450
Vad kan det vara för fel?
Är mot en MySQL-databas.
M@rtinMedlem sedan dec. 19992 085 inlägg Ska det inte vara true? eller yes utan ' runt sig.
ampyMedlem sedan feb. 20011 498 inlägg Ordet yes har bara jag hittat på och kolumnen lock är av typen varchar(50) och då ska man ha '
M@rtinMedlem sedan dec. 19992 085 inlägg Aha.. trodde det var nåt mysql argument typ.. men men.. gör lite mellanrum vid & tecknen. Vet inte om det behövs men testa.
ampyMedlem sedan feb. 20011 498 inlägg Hade redan testat det men det funkar inte.
LarsGMedlem sedan dec. 200012 464 inlägg lock är ett reserverat ord i Mysql.
ampyMedlem sedan feb. 20011 498 inlägg I access kan man ju då skriva [] runt kolumnnamnet, finns det något annat sätt i mysql för [] funkar inte?
LarsGMedlem sedan dec. 200012 464 inlägg "lock"
`lock`
Jag har för mig att jag har sett båda dessa metoder i deras dokumentation. Det första sättet är enligt ANSI-standard.
@ndersMedlem sedan juni 200032 969 inlägg Allra bäst är att byta kolumnnamn.
ampyMedlem sedan feb. 20011 498 inlägg Vet ni vart det finns en lista på reserverade ord till mysql?
LarsGMedlem sedan dec. 200012 464 inlägg ampyMedlem sedan feb. 20011 498 inlägg Såg att jag inte har några reserverade ord i denn SQL-sträng:
SQL = "Insert Into forum(datum, skribent, meddelande, "subject", typ, rum, hemsida, skribent_id, datum2, id_svar, senasteinlagg) Values('"&Day(Date()) & " " & MonthName(Month(Date())) & " kl " & right("0" & Hour(Time()),2) & ":" & right("0" & Minute(Time()),2)&"', '"&session("username")&"', '"&Request.Form("text")&"', '"Svar:" & Request.QueryString("subject")&"', 'svar', '"&Request.QueryString("rum")&"', '"&session("hemsida")&"', "&session("id")&", '"&Now&"', "&Request.QueryString("id")&", '"&Now&"')"
Men jag får ändå
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax near 'Final Fantasy 7, 'svar', 'allmant', 'http://www.ampy.net', 1, '2002-06-17 18:44:' at line 1
/forum.asp, line 3863
Vad kan vara felet i SQL-strängen?
BrimbaMedlem sedan dec. 19995 875 inlägg Du skriver
'"Svar" &
Prova med
'Svar" &
@ndersMedlem sedan juni 200032 969 inlägg Jag tycker dessutom att VBScript-tolken borde reagera på att du har citationstecken i strängen som inte är escape:ade.
... meddelande, [b]""subject""[/b], typ ...
Sen är det alltid lättare att se felen om du skriver ut den färdiga SQL-frågan.
Var kommer Final Fantasy 7 ifrån? Det är ju helt klart en sträng, och skall således ha apostrofer runt sig.
Mvh,
ampyMedlem sedan feb. 20011 498 inlägg Inget av det jag testade funkade:
SQL = "Insert Into forum(datum, skribent, meddelande, subject, typ, rum, hemsida, skribent_id, datum2, id_svar, senasteinlagg) Values('"&Day(Date()) & " " & MonthName(Month(Date())) & " kl " & right("0" & Hour(Time()),2) & ":" & right("0" & Minute(Time()),2)&"', '"&session("username")&"', '"&Request.Form("text")&"', 'Svar" & Request.QueryString("subject")&"', 'svar', '"&Request.QueryString("rum")&"', '"&session("hemsida")&"', "&session("id")&", '"&Now&"', "&Request.QueryString("id")&", '"&Now&"')"
Connect.Execute(SQL)
Sen går det inte att skriva ut SQL-strängen för att jag får felmeddelandet på den och inte på denna rad:
Connect.Execute(SQL)
BrimbaMedlem sedan dec. 19995 875 inlägg Jag ser inget fel direkt, men precis som @nders säger så är det lättare med den färdiga sqlfrågan :)
Vad får du för felmeddelande om du gör:
SQL= "insert into..."
response.write SQL
@ndersMedlem sedan juni 200032 969 inlägg Det senaste felmeddelandet du postade kan du inte ha fått på den raden. Vilket felmeddelande får du här?
Jag kan inte direkt se att du missat något citationstecken eller så.
ampyMedlem sedan feb. 20011 498 inlägg Då får jag
Microsoft OLE DB Provider for ODBC Drivers error '80040e09'
[TCX][MyODBC]You have an error in your SQL syntax near 'Final Fantasy 7, 'svar', 'allmant', 'http://www.ampy.net', 1, '2002-06-17 19:15:' at line 1
/forum.asp, line 3863
Den hinner alltså inte skriva ut SQL-strängen för att jag får felmeddelandet först. Men som ni kanske ser så fattas det ett ' efter Final Fantasy 7
BrimbaMedlem sedan dec. 19995 875 inlägg replace(svar, "'", "''")
kanske :q
Vad vet jag? Det är omöjligt att säga.
Hur som helst. Vad är det du försöker mata in? Har du hela strängen?
@ndersMedlem sedan juni 200032 969 inlägg Då tycker jag att du ska kontrollera radnummer. Du kan inte få det felmeddelandet om du inte gör execute. Är det rätt SQL-sats du postat? Jag tror inte det.
Mvh,