Avatar billede Keld Nielsen Professor
11. august 2004 - 08:51 Der er 8 kommentarer og
1 løsning

Fejl i ASP-script . tilføjelse Dconts

Jeg får flg. fejl. når jeg prøver at afvikle en ASP-script, som bl.a. gemmer oplysningerne i en database:

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

[Microsoft][ODBC Microsoft Access Driver] Syntax error in INSERT INTO statement.

/mbrugerdb.asp, line 42

Koden ser sådan ud (mbrugerdb.asp):
<%
' ############################# INCLUDE DATABASEADD #################################

' Databaseforbindelse oprettes
Set Conn = Server.CreateObject("ADODB.Connection")
DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN = DSN & "DBQ=" & Server.MapPath ("../databaser/mail.mdb")
Conn.Open DSN

' Filter på tekst streng
' Databasen genkender ikke linieskift.
' Brugerenslinieskift erstattes med mellemrum
strIndhold = Replace(strIndhold, vbCrLf, " ")

' SQL sætning opbygges
strSQL = "Insert into mailliste ("

strSQL = strSQL & "Agentur, "
strSQL = strSQL & "Forhandler, "
strSQL = strSQL & "Navn, "
strSQL = strSQL & "Firma, "
strSQL = strSQL & "Adresse, "
strSQL = strSQL & "Postnr, "
strSQL = strSQL & "By, "
strSQL = strSQL & "Telf, "
strSQL = strSQL & "Email, "
strSQL = strSQL & "Indhold)"

strSQL = strSQL & "values( "

strSQL = strSQL & "'" & strAgentur & "', "
strSQL = strSQL & "'" & strForhandler & "', "
strSQL = strSQL & "'" & strNavn & "', "
strSQL = strSQL & "'" & strAdresse & "', "
strSQL = strSQL & "'" & strPostnr & "', "
strSQL = strSQL & "'" & strBy & "', "
strSQL = strSQL & "'" & strTelf & "', "
strSQL = strSQL & "'" & LCase(strEmail) & "', "
strSQL = strSQL & "'" & strIndhold & "')"

' SQL sætning eksekveres
Conn.Execute(strSQL)          ....her er linie 42 !

' Luk databaseforbindelse
Conn.Close
Set Conn = Nothing

' #######################################################################################
%>
Avatar billede fennec Nybegynder
11. august 2004 - 08:57 #1
Jeg kan ikke lige se nogen problemer, så det ligger måske i variablerne.
Prøv at skrive SQL-sætningen ud inden du eksekverer den, og så afbryde scriptet.

response.write strSQL
response.end

Hvordan ser strSQL så ud, når den bliver udskrevet i browseren??
Avatar billede ldanielsen Nybegynder
11. august 2004 - 09:04 #2
Husk også at

strIndhold = Replace(strIndhold, "'", "''")
Avatar billede eagleeye Praktikant
11. august 2004 - 10:17 #3
by er reserveret ord i SQL (ORDER BY) så der skal klammer omkring sådan her:

strSQL = strSQL & "[By], "
Avatar billede ldanielsen Nybegynder
11. august 2004 - 10:33 #4
Godt set, ørneøje :o)

fotograf, jeg vil foreslå at omdøbe feltet til fx "ByNavn"
Avatar billede Keld Nielsen Professor
11. august 2004 - 10:50 #5
Det hjalp! + at jeg huskede at få "strFirma" sat ind !!!

Men nu får jeg en ny fejl:
Microsoft OLE DB Provider for ODBC Drivers error '80004005'

[Microsoft][ODBC Microsoft Access Driver] Field 'mailliste.Navn' cannot be a zero-length string.

/mbrugerdb.asp, line 43
Avatar billede eagleeye Praktikant
11. august 2004 - 13:21 #6
Det er fordi der ikke er udfyldt et nanv.
Hvis du har udfyldt et navn så tjek at variablenavnet er rigtigt i denne linje:
strSQL = strSQL & "'" & strNavn & "', "
Samt tjek at Request.Form("xxx") henter fra det rigtige input felt, altså en linje som denne, dog har du ikke vist dem i din kode her:
strNavn = Request.Form("navn")


Hvis du tillader at man ikke udfylder et navn, skal du åbne Access og så ind i design mode for tabellen. Vælg kolonnen "navn" og sætte TilladNullænge til Ja, som er næsten nederst i listen.
Avatar billede Keld Nielsen Professor
12. august 2004 - 09:19 #7
Tak for hjælpen ...smid lidt svar, så I kan få lidt point.

Til orientering: fejlen lå et andet sted, jeg havde fået smidt en "include file" ind i ASP-området.
Avatar billede eagleeye Praktikant
12. august 2004 - 10:33 #8
Ok :)
Avatar billede Keld Nielsen Professor
18. august 2004 - 08:58 #9
Tak for hjælpen til alle ...der kom ikke flere svar, så det blev 'eagleeye' der fik dem!
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