Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:14 Der er 14 kommentarer og
1 løsning

Fejl i INSERT INTO

Når jeg skal indsætte værdier fra en form i en database, giver windows mig flg. fejlmeddelelse:
Microsoft OLE DB Provider for ODBC Drivers error \'80040e14\'

[Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen.

/ASPforum/aspforum/NewDialog.asp, line 16

Linje 16 er der hvor min SQL eksekveres....

Hvorfor virker lortet ikke/ Hvor er fejlen ????


Her er min kode:

strSQL = \"INSERT INTO Forums\"
strSQL = strSQL & \" (Forum, Description, Text)\"
strSQL = strSQL & \" VALUES(\'\" & DBFix(Trim(Request.Form(\"Forum\"))) & \"\', \'\" & DBFix(Trim(Request.Form(\"Description\"))) & \"\', \'\" & DBFix(Trim(Request.Form(\"Text\"))) & \"\');\"

myConn.Execute(strSQL)
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:18 #1
prøv at sætte
response.write strSQL ind inden din myConn.Execute(strSQL)
og paste det der står på skræmen tilbage her....
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:19 #2
og hvad gør din DBFix ???
Avatar billede seider Nybegynder
05. februar 2001 - 11:19 #3
Prøv at fjerne dine \' jeg mener ikke de er nødvendige, men er ikke helt sikker.

Prøv at lave en document.write (StrSQL), og se om SQL stringen ser fornuftig ud.

/* seider */
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:20 #4
seider >> \' er i høj grad nødvendige, da der ellers vil opstå en type mismatch
Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:22 #5
Dette får jeg ud af Response.write strSQL:

INSERT INTO Forums (Forum, Description, Text) VALUES(\'Test\', \'Oplæg af carsten\', \'Dette er et oplæg\');
Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:24 #6
Function DBFix(tempString)
    tempString = Replace(Trim(tempString), \"\'\", \"\'\'\")
    tempString = Replace(tempString, \"|\", \"\")
    DBFix = tempString
End Function
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:26 #7
Det du kan gøre det er at desikere din SQL sætning, ved at fjerne en ting af gangen, for at finde grunden til fejlen.
Der kan være mange forskellige grunde til at det ikke virker, f.eks. kan det være en stavefejl i et felt navn.
Men prøv med henholdsvis :
INSERT INTO Forums (Forum, Description) VALUES(\'Test\', \'Oplæg af carsten\');
INSERT INTO Forums (Forum) VALUES(\'Test\');

OG BTW så behøver man ikke ; tilsidst når man executer sql\'er fra en ASP, side...Men jeg tror nu ikke at det er problemet.


Avatar billede eagleeye Praktikant
05. februar 2001 - 11:29 #8
Lav felt navnet Description om til noget andet. Det er et reserveret ord i SQL:

Se her hvilke or du ikke må bruge som felt navn:
http://support.microsoft.com/support/kb/articles/Q209/1/87.ASP?LN=EN-US&SD=gn&FR=0
Avatar billede moa Nybegynder
05. februar 2001 - 11:30 #9
Hvad med det manglende mellemrum mellem \"VALUES\" og den efterfølgende parantes?
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:31 #10
EJ, moa den er ligegyldig, eagleeye, har svaret.....!
Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:34 #11
Til kasseper:
INSERT INTO Forums (Forum, Description) VALUES(\'Test\', \'Oplæg af carsten\');
Den virker, men:
INSERT INTO Forums (Forum) VALUES(\'Test\');
virker ikke..... Måske er det det med reserverede ord!!
Avatar billede kasseper Nybegynder
05. februar 2001 - 11:36 #12
HOV HOV HOV.
INSERT INTO Forums (Forum, Description) VALUES(\'Test\', \'Oplæg af carsten\');
Burde ikke virke, hvis det er noget med reserverede ord, men eagleeye har altså ret......
Jeg er forstår det ikke lige....
Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:40 #13
Nu virker det..... Fejlen var at Text, var et reserveret ord !!!

strSQL = \"INSERT INTO Forums\"
strSQL = strSQL & \" (Forum, Description, Tekst)\"
strSQL = strSQL & \" VALUES (\'\" & DBFix(Trim(Request.Form(\"Forum\"))) & \"\', \'\" & DBFix(Trim(Request.Form(\"Description\"))) & \"\', \'\" & DBFix(Trim(Request.Form(\"Tekst\"))) & \"\');\"

response.write strSQL

    myConn.Execute(strSQL)
Avatar billede grandmaster_c Nybegynder
05. februar 2001 - 11:41 #14
Sorry eagleeye, jeg kom til at afvise dig... Skriv et svar og du får point
Avatar billede eagleeye Praktikant
05. februar 2001 - 11:51 #15
:-) her er et svar.
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