Avatar billede galadrijela Nybegynder
13. december 2005 - 21:42 Der er 13 kommentarer

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)

Jeg har følgerne kode:
Dim Digte, Indhold, Forfetter, Art

Digte    = Trim(Request.Form("digte"))
Indhold  = Trim(Request.Form("indhold"))
Forfetter = Trim(Request.Form("forfetter"))
Art      = Trim(Request.Form("art"))

strSQL = "Insert into kntabel ("
   
    strSQL = strSQL & "digte, "
        strSQL = strSQL & "indhold, "
        strSQL = strSQL & "forfetter, "
        strSQL = strSQL & "art) "
                 
    strSQL = strSQL & "values( "

    strSQL = strSQL & "'" & Digte & "', "
        strSQL = strSQL & "'" & Indhold & "', "
        strSQL = strSQL & "'" & Forfetter & "', "
        strSQL = strSQL & "'" & Art & "') "
   
    ' SQL sætning eksekveres
    Conn.Execute(strSQL)
    Response.redirect "index.asp"

Det er meget mærkeligt, fordi det kode virker i nogle tilfalder, og i nogle tilfalder  får jeg dette fejl meddelelse:

Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket

Er der nogen det kan hjælpe mig :)
Avatar billede nielle Nybegynder
13. december 2005 - 21:52 #1
Prøv lige med noget debug udskrivning:

Jeg har følgerne kode:
Dim Digte, Indhold, Forfetter, Art

Digte    = Trim(Request.Form("digte"))
Indhold  = Trim(Request.Form("indhold"))
Forfetter = Trim(Request.Form("forfetter"))
Art      = Trim(Request.Form("art"))

strSQL = "Insert into kntabel ("
strSQL = strSQL & "digte, "
strSQL = strSQL & "indhold, "
strSQL = strSQL & "forfetter, "
strSQL = strSQL & "art) "
                 
strSQL = strSQL & "values( "

strSQL = strSQL & "'" & Digte & "', "
strSQL = strSQL & "'" & Indhold & "', "
strSQL = strSQL & "'" & Forfetter & "', "
strSQL = strSQL & "'" & Art & "') "
   
' SQL sætning eksekveres

Response.Write "DEBUG: " & strSQL & "<br>"

Conn.Execute(strSQL)
Response.redirect "index.asp"
Avatar billede galadrijela Nybegynder
13. december 2005 - 22:02 #2
Jeg kopier et digt og indsætte den i feltet, og når jeg trykker på OK indskrives det i DB. I dette tilfælde vil også udskrive indhold fra DEBUG på siden, men jeg gøre det samme med et andet digt  den vil ikke acceptere det. I dette tilfælde DEBUG giver ikke noget, jeg får bar det samme fejl meddelelse. &#61516;

Kan ikke fatte det!

p.s. Har også prøvet med at indtaste det selv.... samme resultat :(
Avatar billede nielle Nybegynder
13. december 2005 - 22:05 #3
Hvordan se den SQL-sætning ud som fejler? Det var egentlig for at få dette at vide at jeg foreslog DEBUG'en.
Avatar billede galadrijela Nybegynder
13. december 2005 - 22:07 #4
Fejltype:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl, fordi der mangler en operator. i forespørgselsudtrykket "'Iskrena pesma O sklopi usne, ne govori, &#263;uti, Ostavi dušu, nek' spokojno sniva - Dok kraj nas liš&#263;e na drve&#263;u žuti".
/Carstvo/ubacisavete.asp, line 41


linie 41 er Conn.Execute(strSQL)
Avatar billede nielle Nybegynder
13. december 2005 - 22:09 #5
Det der er jo ikke en SQL-sætning?

Jeg gætter dog på at den aktuelle fekl kommer pga. ø-tegnet her:

.... , nek' spokojno ...

Husk på at du omgiver dine tekststrenge med '-tegn i hver ende, og det vil derfor give fejl hvis der også er nogen inde midt i.
Avatar billede nielle Nybegynder
13. december 2005 - 22:10 #6
Sådanne skal escapes før de indsættes:

.... , nek\' spokojno ...
Avatar billede galadrijela Nybegynder
13. december 2005 - 22:16 #7
Det var det!!!!

Kan jeg skrive et eller andet kode så programmet kan automatski indsætte \ føran '?

Du får point, men du er nød til at forklare mig hvad skal jeg gør :))

Tusind tak!
Avatar billede nielle Nybegynder
13. december 2005 - 22:19 #8
Dim Digte, Indhold, Forfetter, Art

Digte = Replace(Trim(Request.Form("digte")), "'", "\'")
Indhold = Replace(Trim(Request.Form("indhold")), "'", "\'")
Forfetter = Replace(Trim(Request.Form("forfetter")), "'", "\'")
Art = Replace(Trim(Request.Form("art")), "'", "\'")

strSQL = "INSERT INTO kntabel ("
strSQL = strSQL & "digte, "
strSQL = strSQL & "indhold, "
strSQL = strSQL & "forfetter, "
strSQL = strSQL & "art) "
                 
strSQL = strSQL & "values ("
strSQL = strSQL & "'" & Digte & "', "
strSQL = strSQL & "'" & Indhold & "', "
strSQL = strSQL & "'" & Forfetter & "', "
strSQL = strSQL & "'" & Art & "')"
   
' SQL sætning eksekveres
Conn.Execute(strSQL)
Response.redirect "index.asp"
Avatar billede nielle Nybegynder
13. december 2005 - 22:20 #9
Et alternativ kan sometide være at replace '-tegn med to '-tegn.

Indhold = Replace(Trim(Request.Form("indhold")), "'", "''")
Avatar billede galadrijela Nybegynder
13. december 2005 - 22:22 #10
Tænk bare at det var så nemt.... tak en gang til, og hvad skal jeg gør så du kan få point?
Avatar billede nielle Nybegynder
13. december 2005 - 22:25 #11
Svar :^)
Avatar billede nielle Nybegynder
20. december 2005 - 18:48 #12
Så mangler du blot at acceptere svaret :^)
Avatar billede nielle Nybegynder
08. januar 2006 - 12:31 #13
??
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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