Avatar billede gigaload Nybegynder
22. marts 2006 - 11:27 Der er 15 kommentarer og
1 løsning

syntax fejl ved insæt i database

Microsoft JET Database Engine error '80040e14'

Syntax error in INSERT INTO statement.

/koeb.asp, line 12


<%

' Åbner en forbindelse til databasen
  Set myconn = Server.CreateObject("ADODB.Connection")
  myconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("firma7.mdb") &";"

dato = day(now) & "-" & month(now) & "-" & year(now)

SQLind = "INSERT INTO koeb(navn, efternavn, vej, post, by, land, dato, produkt1, produkt2, produkt3, produkt4, produkt5) VALUES ('" & Request.Form("navn") & "' , '" & Request.Form("efternavn") & "' , '" & Request.Form("vej") & "' , '" & Request.Form("post") & "' , '" & Request.Form("by") & "' , '" & Request.Form("land") & "' , '" & dato & "' , '" & Request.Form("produkt1") & "' , '" & Request.Form("produkt2") & "' , '" & Request.Form("produkt3") & "' , '" & Request.Form("produkt4") & "' , '" & Request.Form("produkt5") & "');"

' SQL sætning eksekveres
myconn.Execute(SQLind)

' Luk databaseforbindelse
myconn.Close
Set myconn = Nothing

Response.Redirect("vis.asp?navn="& Request.Form("navn") &"efternavn="& Request.Form("Pedersen") &"vej="& Request.Form("vej") &"post="& Request.Form("post") &"by="& Request.Form("by") &"land="& Request.Form("land"))
%>

linie 12 er:
myconn.Execute(SQLind)
Avatar billede fennec Nybegynder
22. marts 2006 - 11:34 #1
by er et reserveret ord så der skal [] omkring:
SQLind = "INSERT INTO koeb(navn, efternavn, vej, post, [by]...
Avatar billede gigaload Nybegynder
22. marts 2006 - 12:04 #2
når jeg så retter det, så gir det mig en fejl i line 5:
  myconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("firma7.mdb") &";"

og fejlen lyder:

Microsoft JET Database Engine error '80004005'

Unspecified error

/koeb.asp, line 5
Avatar billede fennec Nybegynder
22. marts 2006 - 12:19 #3
Skriv lige SQL-sætningen ud på skærmen inde du bruger den, og smid linjen herind:

resposne.write "sql: "& SQLind
myconn.Execute(SQLind)
Avatar billede gigaload Nybegynder
22. marts 2006 - 12:24 #4
det gir

ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.
Avatar billede fennec Nybegynder
22. marts 2006 - 12:36 #5
smid lige en response.end efter write:
response.write "sql: "& SQLind
response.end
Avatar billede gigaload Nybegynder
22. marts 2006 - 14:43 #6
så skriver den:

sql: INSERT INTO koeb(navn, efternavn, vej, post, [by], land, dato, produkt1, produkt2, produkt3, produkt4, produkt5) VALUES ('Kenneth' , 'Pedersen' , 'Jordenrundt 53' , '3600' , 'Frederikssund' , 'Danmark' , '22-3-2006' , '1' , '1' , '0' , '0' , '0');
Avatar billede fennec Nybegynder
22. marts 2006 - 14:51 #7
Jeg opdagede lige noget... Du er sikker på den ikke har gemt noget??? for en "BOF or EOF " fejl kommer IKKE ved en indsættelse, så det kunne være at den gemte data, men fejler på vis.asp siden, som du jo redirecter til...
Avatar billede gigaload Nybegynder
22. marts 2006 - 14:57 #8
jo den har gemt i databasen
Avatar billede gigaload Nybegynder
22. marts 2006 - 15:01 #9
der hvor den fejler, er i vis.asp linie 12.

navn = RS("navn") <--- linie 12


<%

' Åbner en forbindelse til databasen
  Set myconn = Server.CreateObject("ADODB.Connection")
  myconn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("firma7.mdb") &";"
 
' Trækker samtlige data ud af databasen, hvor navn og efternavn er dem der er søgt på,
' og de sorteres i faldende rækkefølge efter ID.
  SQLhent = "SELECT * FROM koeb WHERE navn = '"& Request.QueryString("navn") &"' AND efternavn = '"& Request.QueryString("efternavn") &"' ORDER BY ID DESC"
  Set RS = myconn.Execute(SQLhent)
 
  navn = RS("navn")
  efternavn = RS("efternavn")
  vejnavn = RS("vejnavn")
  post = RS("post")
  by = RS("by")
  land = RS("land")
 
%>

<%       
                ' Dataen blir udskrevet til siden vis
                DO WHILE NOT RS.EOF
               
                dato = RS("dato")
                  produkt1 = RS("produkt1")
                  produkt2 = RS("produkt2")
                  produkt3 = RS("produkt3")
                  produkt4 = RS("produkt4")
                  produkt5 = RS("produkt5")
               
                Response.Write("<tr>")
                Response.Write("<td width='450' colspan='2'>&nbsp;</td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>" & dato & "</td>")
                Response.Write("<td width='200'>&nbsp;</td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>Imedeen Tan Optimizer</td>")
                Response.Write("<td width='200'> "& produkt1 &" </td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>Imedeen Time Perfection</td>")
                Response.Write("<td width='200'> "& produkt2 &" </td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>Imedeen Classic</td>")
                Response.Write("<td width='200'> "& produkt3 &" </td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>Imedeen Prime Renewal</td>")
                Response.Write("<td width='200'> "& produkt4 &" </td>")
                Response.Write("</tr>")
                Response.Write("<tr>")
                Response.Write("<td width='250'>Imedeen Expression Line Control</td>")
                Response.Write("<td width='200'> "& produkt5 &" </td>")
                Response.Write("</tr>")
           
                ' Går til næste record i RS
                RS.MoveNext
               
                ' Fortsætter indtil RS er gennemløbet (EOF = End Of File)
                LOOP
            %>
Avatar billede fennec Nybegynder
22. marts 2006 - 15:17 #10
Den finder ikke nogen resultater på den side ud fra SQLhent, hvilket er mærkeligt da der jo netop er indsat en linje med de data ?-)

Prøv at udskrive SQLhent og smid linjen herind...
Avatar billede gigaload Nybegynder
22. marts 2006 - 16:07 #11
har fået det til at virke, så smid lige et svar :)
Avatar billede gigaload Nybegynder
22. marts 2006 - 16:10 #12
hmm... loadede siden, virkede, loadede den igen, og så meldte den fejlen igen.

ADODB.Field error '800a0bcd'

Either BOF or EOF is True, or the current record has been deleted. Requested operation requires a current record.

/vis.asp, line 13
Avatar billede gigaload Nybegynder
22. marts 2006 - 16:11 #13
SQLen ser sådan her ud.

sql: SELECT * FROM koeb WHERE navn = 'Kenneth' AND efternavn = 'Pedersen' AND vej= '' AND post= '3600' AND land= 'Danmark' ORDER BY ID DESC
Avatar billede fennec Nybegynder
22. marts 2006 - 16:18 #14
Det kan ikke være den du har vist i koden før:
SQLhent = "SELECT * FROM koeb WHERE navn = '"& Request.QueryString("navn") &"' AND efternavn = '"& Request.QueryString("efternavn") &"' ORDER BY ID DESC"

Der er ikke nogen vej, post og land i...

Jeg vil dog gætte på at det er "vej", der er problemet, da den ikke har fået nogen værdi. Prøv at tjekke din request.querystring("xx") om den er skrevet rigtigt jævnført din URL.
Avatar billede gigaload Nybegynder
22. marts 2006 - 20:37 #15
fennec. sku rart en der har brugt så meget tid på at hjælpe. har fået løst det. så min fejl, som lå i den måde min redirect blev skrev på.
hvis du gider smide et svar, så får du lidt point :)
Avatar billede fennec Nybegynder
23. marts 2006 - 08:20 #16
.o) <-- One Eyed Jack
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