Avatar billede intrique Nybegynder
02. august 2002 - 16:59 Der er 10 kommentarer og
1 løsning

Sql Query [Insert]

Hej, så er jeg her igen :)

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Lord 0' Destruction', '1','2')'.

/mdtester/nwn.builders/forum/doreply.asp, line 47

og linjen er :

strSQL = "Insert into Reply ([date], [text], [author], [topicID], [authorID]) values ('" & Now() & "', '" & Request.Form("Text") & "', '" & Request.Cookies("Nick") & "', '" & Request.Querystring("topicid") & "','" & Request.Cookies("Id") & "')"

Noget værre noget. Alle felterne er TEKST ... Så deeee-t..

Svare eagleeye -du har jo altid ret :) /Alle i andre må også gerne svare :D:D:D:/
Avatar billede coltau Juniormester
02. august 2002 - 17:08 #1
Hvis nogle af felterne er tomme skal man anvende kommandoen NULL.
Det kan gøres på denne måde:

<%
function CT(Value)
  if Value <> "" then
    CT = "'" & Value & "'"
  else
    CT = NULL
end function

strSQL = "Insert into Reply ([date], [text], [author], [topicID], [authorID]) values ('" & Now() & "', " & CT(Request.Form("Text")) & ", " & CT(Request.Cookies("Nick")) & ", " & CT(Request.Querystring("topicid")) & "," & CT(Request.Cookies("Id")) & ")"

%>
Avatar billede eagleeye Praktikant
02. august 2002 - 17:10 #2
du kan måske i førte omgang prøve at udskrive strSQL som den er i dag og se om det er rigtigt at du forsøger at ligge en ' i en tekst.

strSQL = "Insert into Reply ([date], [text], [author], [topicID], [authorID]) values ('" & Now() & "', '" & Request.Form("Text") & "', '" & Request.Cookies("Nick") & "', '" & Request.Querystring("topicid") & "','" & Request.Cookies("Id") & "')"

Response.write strSQL
Avatar billede intrique Nybegynder
02. august 2002 - 17:10 #3
Ingen af dem er tomme/fortsætter med at blive tomme...
Avatar billede eagleeye Praktikant
02. august 2002 - 17:11 #4
?? hvor blev mit svar af... Prøver igen
Avatar billede intrique Nybegynder
02. august 2002 - 17:11 #5
Hvad mener du helt præcist EE ?
Avatar billede eagleeye Praktikant
02. august 2002 - 17:12 #6
Jeg ville gætte på du ligger en ' i inde i en streng.

strText = Replace(Request.Form("Text"),"'", "''")
strNick = Replace(Request.Cookies("Nick"),"'", "''")
strSQL = "Insert into Reply ([date], [text], [author], [topicID], [authorID]) values ('" & Now() & "', '" & strText & "', '" & strNick & "', '" & Request.Querystring("topicid") & "','" & Request.Cookies("Id") & "')"
Avatar billede eagleeye Praktikant
02. august 2002 - 17:14 #7
' bruges i SQL som start og slut på strenge lige som " bruges i ASP koden.

Så du skal konverter en ' til to '' som så bliver tolket som en ' i databasen. Det gøres som vist med replace functionen.
Avatar billede neteffect Nybegynder
02. august 2002 - 17:14 #8
Det er vist quoten inde i 'Lord 0' Destruction', der er årsagen
Avatar billede intrique Nybegynder
03. august 2002 - 13:47 #9
Nu har jeg prøvet med et andet brugernavn (Sejt) og det duer heller ikke. Fejl meddelsen:

Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error in query expression 'Vildere.. test !'.

/mdtester/nwn.builders/forum/doreply.asp, line 47
Avatar billede intrique Nybegynder
03. august 2002 - 13:48 #10
ee tænk at jeg tvivlede  ? :D
Avatar billede coltau Juniormester
03. august 2002 - 14:34 #11
For at undgå problemer med textfelter og datofelter kan du jo indsætte nye poster på nedenstående måde. Der skal ikke konverteres noget inden det gemmes i databasen.

<%
  Set RS = Server.CreateObject("ADODB.Recordset")
  RS.Open "select * from reply", objConn, 1, 3
  RS.AddNew
  RS("Date") = Now
  RS("text") = Request.Form("Text")
  RS("author") = Request.Cookies("Nick")
  RS("topicid") = Request.Querystring("topicid")
  RS("authorID") = Request.Cookies("Id")
  RS.Update
%>
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