Avatar billede henrik61 Nybegynder
19. januar 2003 - 14:43 Der er 5 kommentarer og
1 løsning

Fejl med Microsoft OLE DB !!!

Hej
Jeg har et forum sitet hvor to af medlemmerne får denne meddelse når de forsøger at poste noget:
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression

Hvad fortæller denne streng mig??
De har begge to EI 6.0
Mangler de at få installeret en driver??
Henrik
Avatar billede Søren Bech Morsing Praktikant
19. januar 2003 - 14:49 #1
måske mangler der en sesion i din SQL streng.

Prøv at skrive din SQL streng ud til skærmen, så kan du evt. se hvad der måtte mangle (eller post den her)
Avatar billede henrik61 Nybegynder
19. januar 2003 - 15:29 #2
Her er min SQL, men det er kun de to der får denne fejlmelding, ved alle andre viker den.
<%
Set Conn = Server.CreateObject("ADODB.Connection")
' Her skabes der forbindelse til database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("entries.mdb")
Conn.Open DSN

strSQL = "INSERT INTO Indbakke (Navn, Emne, Besked, Thread, Reply_Id) VALUES ('" & Request.Form("Navn") & " ',' " & Request.Form("Emne") &  " ','" & Request.Form("Besked") & " ','" & Request.Form("Thread") & "','" & Request.Form("Reply_Id") &  "')"

Conn.Execute(strSQL)
%>
Avatar billede hossein Nybegynder
19. januar 2003 - 15:47 #3
Hvis reply_ID er tal så skal du ikke sætte ' omkring den.

..., " & Request.Form("Reply_Id") &  ")"
Avatar billede henrik61 Nybegynder
19. januar 2003 - 16:05 #4
Det er ikke det, da de får den samme melding når poster fra denne SQL:
<%
Set Conn = Server.CreateObject("ADODB.Connection")
' Her skabes der forbindelse til database
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath("entries.mdb")
Conn.Open DSN

strSQL ="Insert into Indbakke (Navn, Email, Emne, Besked, Thread)"
strSQL = strSQL & "values('" & Request.Form("Navn") & "','" & Request.Form("Email") & "','" & Request.Form("Emne") & "','" &  Request.Form("Besked") &  "','" & Request.Form("Thread") & "')"

Conn.Execute(strSQL)
%>
Der er ingen tal i denne.
Kan det være deres opsætning af EI?
Avatar billede hossein Nybegynder
19. januar 2003 - 17:07 #5
Ok, det kommer an på hvad er det som man sender til tabelen, hvis det er bare tekst f ex henrik så får man ikke noget problemer men hvis det henrik's så får man fejl  besked, du skal derfor bruge replace funktionen inden du sender værdien til tabellen fx:
RetNavn = Request.Form("Navn")
minNavn = Replace(RetNavn, "'", "''")

strSQL ="Insert into Indbakke (Navn, Email, Emne, Besked, Thread)"
strSQL = strSQL & "values('" & minNavn & "','" & Request.Form("Email") & "','" & Request.Form("Emne") & "','" &  Request.Form("Besked") &  "','" & Request.Form("Thread") & "')"

du kan også lave en funktion hvor den tjekker alle værdier:

Function StrQuoteReplace(strValue)
  StrQuoteReplace = Replace(strValue, "'", "''")
End Function

Dim strSQL

strSQL = "INSERT into Indbakke " & _
"(Navn, Email, Emne, Besked, Thread) " & _
"VALUES('" & _
StrQuoteReplace(Navn) & "', '" & _
StrQuoteReplace(Email) & "', '" & _
StrQuoteReplace(Emne) & "', '" & _
StrQuoteReplace(Besked) & "', '" & _ 
StrQuoteReplace(Thread) & "')"
Avatar billede henrik61 Nybegynder
19. januar 2003 - 18:01 #6
ok - tak skal du have
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