A ampy Medlem sedan feb. 2001 1 498 inlägg Frågan 17 juni 2002 14:12 #1 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 M@rtin Medlem sedan dec. 1999 2 085 inlägg Ska det inte vara true? eller yes utan ' runt sig.
A ampy Medlem sedan feb. 2001 1 498 inlägg Ordet yes har bara jag hittat på och kolumnen lock är av typen varchar(50) och då ska man ha '
M M@rtin Medlem sedan dec. 1999 2 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.
A ampy Medlem sedan feb. 2001 1 498 inlägg Hade redan testat det men det funkar inte.
L LarsG Medlem sedan dec. 2000 12 464 inlägg lock är ett reserverat ord i Mysql.
A ampy Medlem sedan feb. 2001 1 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?
L LarsG Medlem sedan dec. 2000 12 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.
@nders Medlem sedan juni 2000 32 967 inlägg Allra bäst är att byta kolumnnamn.
A ampy Medlem sedan feb. 2001 1 498 inlägg Vet ni vart det finns en lista på reserverade ord till mysql?
L LarsG Medlem sedan dec. 2000 12 464 inlägg A ampy Medlem sedan feb. 2001 1 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?
Brimba Medlem sedan dec. 1999 5 875 inlägg Du skriver
'"Svar" &
Prova med
'Svar" &
@nders Medlem sedan juni 2000 32 967 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,
A ampy Medlem sedan feb. 2001 1 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)
Brimba Medlem sedan dec. 1999 5 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
@nders Medlem sedan juni 2000 32 967 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å.
A ampy Medlem sedan feb. 2001 1 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
Brimba Medlem sedan dec. 1999 5 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?
@nders Medlem sedan juni 2000 32 967 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,