16. april 2004 - 15:18
Der er
39 kommentarer og 2 løsninger
Tilføj til DB
Hej eksperter...!
100 Point til den som får det her til at virke...
http://frip.dk/cronck/project.rar
Annonceindlæg fra Deloitte
16. april 2004 - 15:20
#1
kommer den ikke med en fejl kode? Hvis ja, så hvad?
16. april 2004 - 15:24
#2
hmm.. Fejltype: Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access-driver] Der er en syntaksfejl i INSERT INTO-sætningen. /add_monster_handler.asp, line 75 og når jeg retter det kommer noget andet frem.... har kæmpet med den her i 1½ time nu... :(
16. april 2004 - 15:28
#3
Prøv: sql = "Insert Into tbl_monsters set (name, location, level, member, hits, loot_common, loot_rare, loot_permanent, examine, agressive, quest) Values('" & Request.Form("strname") & "','" & Request.Form("strlocation") & "','" & Request.Form("strlevel") & "','" & Request.Form("strmember") & "','" & Request.Form("strhits") & "','" & Request.Form("strloot_common") & "','" & Request.Form("strloot_rare") & "','" & Request.Form("strloot_permanent") & "','" & Request.Form("strexamine") & "','" & Request.Form("stragressive") & "','" & Request.Form("strquest") & "')" Conn.Execute(sql)
16. april 2004 - 15:30
#4
Nope... Stadig samme fejl...
16. april 2004 - 15:32
#5
sql = "Insert Into tbl_monsters (name,location,level,member,hits,loot_common,loot_rare,loot_permanent,examine,agressive,quest) Values('" & Request.Form("strname") & "','" & Request.Form("strlocation") & "','" & Request.Form("strlevel") & "','" & Request.Form("strmember") & "','" & Request.Form("strhits") & "','" & Request.Form("strloot_common") & "','" & Request.Form("strloot_rare") & "','" & Request.Form("strloot_permanent") & "','" & Request.Form("strexamine") & "','" & Request.Form("stragressive") & "','" & Request.Form("strquest") & "')" Conn.Execute(sql)
16. april 2004 - 15:34
#6
Duer heller ikk.. ;-(
16. april 2004 - 15:49
#8
Hmm.. Har lige kigget... (lidt rodet) jeg har genskrevet hele koden, og får stadig samme fejl... <% response.buffer = true Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/itemsandmonsters.mdb") Conn.Open DSN strSQL = "Insert into tbl_monsters (" strSQL = strSQL & "name, " // 1 strSQL = strSQL & "location, " // 2 strSQL = strSQL & "level, " // 3 strSQL = strSQL & "member, " // 4 strSQL = strSQL & "hits, " // 5 strSQL = strSQL & "loot_common, " // 6 strSQL = strSQL & "loot_rare, " // 7 strSQL = strSQL & "loot_permanent, " // 8 strSQL = strSQL & "examine, " // 9 strSQL = strSQL & "agressive, " // 10 strSQL = strSQL & "quest) " // 11 strSQL = strSQL & "values('" strSQL = strSQL & Request.Form("strname") & "','" // 1 strSQL = strSQL & Request.Form("strlocation") & "','" // 2 strSQL = strSQL & Request.Form("strlevel") & "','" // 3 strSQL = strSQL & Request.Form("strmember") & "','" // 4 strSQL = strSQL & Request.Form("strhits") & "','" // 5 strSQL = strSQL & Request.Form("strloot_common") & "','" // 6 strSQL = strSQL & Request.Form("strloot_rare") & "','" // 7 strSQL = strSQL & Request.Form("strloot_permanent") & "','" // 8 strSQL = strSQL & Request.Form("strexamine") & "','" // 9 strSQL = strSQL & Request.Form("stragressive") & "','" // 10 strSQL = strSQL & Request.Form("strquest") & "')" // 11 Conn.Execute(strSQL) Conn.Close Set Conn = Nothing %>
16. april 2004 - 15:50
#9
Altså: Der er en syntaksfejl i INSERT INTO-sætningen.
16. april 2004 - 15:53
#10
Det siger den jo at der er, men jeg kan ikke lige se hvor fejlen skulle være :-(
16. april 2004 - 15:54
#11
name er reservert ord så der skal [] omkring [name], level er vist også reserveret. En anden ting husk kolonner som er defineret som tal skal der ikke ' omkring.
16. april 2004 - 15:56
#12
selvføldelig... Doh... :-)
16. april 2004 - 15:56
#13
dvs. at jeg skal bare lave disse om? strSQL = strSQL & "[name], " strSQL = strSQL & "[level], "
16. april 2004 - 15:56
#14
Ja, men for en sikkerheds skyld kan du prøve at sætte klammer omkring alle kolonnenavne, så driller de ikke: strSQL = "Insert into tbl_monsters (" strSQL = strSQL & "[name], " // 1 strSQL = strSQL & "[location], " // 2 strSQL = strSQL & "[level], " // 3 strSQL = strSQL & "[member], " // 4 strSQL = strSQL & "[hits], " // 5 strSQL = strSQL & "[loot_common], " // 6 strSQL = strSQL & "[loot_rare], " // 7 strSQL = strSQL & "[loot_permanent], " // 8 strSQL = strSQL & "[examine], " // 9 strSQL = strSQL & "[agressive], " // 10 strSQL = strSQL & "[quest]) " // 11
16. april 2004 - 15:58
#15
Ok, det har jeg nu gjort, så skriver den bare: Microsoft OLE DB Provider for ODBC Drivers error '80004005' [Microsoft][ODBC Microsoft Access Driver]General error Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x4c8 Thread 0x580 DBC 0xb5eb3c4 Jet'. /cronck/add_monster_handler.asp, line 72
16. april 2004 - 15:58
#16
I får lige hele filen her: <html> <head> <title>RSFever</title> <LINK href="style.css" type=text/css rel=stylesheet> </head> <body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000"> <center><font size="5">Monster Added!</font></center> <div align="center"> <center> <table border="0"> <tr> <td>Monster Name:</td> <td><%=Request.Form("strname")%></td> </tr> <tr> <td>Location</td> <td><%=Request.Form("strlocation")%></td> </tr> <tr> <td>Level</td> <td><%=Request.Form("strlevel")%></td> </tr> <tr> <td>Members only?</td> <td><%=Request.Form("strmember")%></td> </tr> <tr> <td>Hits</td> <td><%=Request.Form("strhits")%></td> </tr> <tr> <td>Loot (Common)</td> <td><%=Request.Form("strloot_common")%></td> </tr> <tr> <td>Loot (Rare)</td> <td><%=Request.Form("strloot_rare")%></td> </tr> <tr> <td>Loot (Always)</td> <td><%=Request.Form("strloot_permanent")%></td> </tr> <tr> <td>When examine it says:</td> <td><%=Request.Form("strexamine")%></td> </tr> <tr> <td>Agressive?</td> <td><%=Request.Form("stragressive")%></td> </tr> <tr> <td>Type (Animal, Giant etc.)</td> <td><%=Request.Form("strtype")%></td> </tr> <tr> <td>Quest Monster</td> <td><%=Request.Form("strquest")%></td> </tr> </table> </center> </div> </body> </html> <% response.buffer = true Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("/cgi-bin/itemsandmonsters.mdb") Conn.Open DSN strSQL = "Insert into tbl_monsters (" strSQL = strSQL & "[name], " // 1 strSQL = strSQL & "location, " // 2 strSQL = strSQL & "[level], " // 3 strSQL = strSQL & "member, " // 4 strSQL = strSQL & "hits, " // 5 strSQL = strSQL & "loot_common, " // 6 strSQL = strSQL & "loot_rare, " // 7 strSQL = strSQL & "loot_permanent, " // 8 strSQL = strSQL & "examine, " // 9 strSQL = strSQL & "agressive, " // 10 strSQL = strSQL & "quest) " // 11 strSQL = strSQL & "values('" strSQL = strSQL & Request.Form("strname") & "','" // 1 strSQL = strSQL & Request.Form("strlocation") & "','" // 2 strSQL = strSQL & Request.Form("strlevel") & "','" // 3 strSQL = strSQL & Request.Form("strmember") & "','" // 4 strSQL = strSQL & Request.Form("strhits") & "','" // 5 strSQL = strSQL & Request.Form("strloot_common") & "','" // 6 strSQL = strSQL & Request.Form("strloot_rare") & "','" // 7 strSQL = strSQL & Request.Form("strloot_permanent") & "','" // 8 strSQL = strSQL & Request.Form("strexamine") & "','" // 9 strSQL = strSQL & Request.Form("stragressive") & "','" // 10 strSQL = strSQL & Request.Form("strquest") & "')" // 11 Conn.Execute(strSQL) Conn.Close Set Conn = Nothing %> Conn.Close %>
16. april 2004 - 15:59
#17
spottede lige at Con.Close står 2 gange...
16. april 2004 - 16:00
#18
Men det giver stadig samme fejl..
16. april 2004 - 16:08
#19
Kan en af jer ikk lave det helt så det virker..? Jeg smutter 1 times tid...
16. april 2004 - 16:12
#20
Hej Cronck Du bruger javascript udkommentering i en VBScript-blok...det kommer i hvert fald ikke til at virke... M.v.h. Kim strSQL = strSQL & Request.Form("strname") & "','" // 1
16. april 2004 - 16:16
#21
kimovitch >> Det har ikke noget med det at gøre! :-)
16. april 2004 - 16:19
#22
kimovitch> godt spottet :-) Kommentering i VBScript sker med: ' Eksempel: strSQL = strSQL & "[name], " ' 1 mht fejlen "General error Unable to open registry key...": Det betyder at den ikke kan finde database-filen (mdb-filen) Den henviser til dette: Server.MapPath("/cgi-bin/itemsandmonsters.mdb") - Har du flyttet database filen, eller ændret "/cgi-bin/itemsandmonsters.mdb"? - Har du omdøbt database filen?
16. april 2004 - 16:31
#25
kimovitch >> Sorry... Nu kan jeg godt se det. Jeg troede at det var i request.form du mente :-) hehe
16. april 2004 - 16:56
#26
Nu får jeg fejlen: Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /cronck/add_monster_handler.asp, line 102 ------------------------------------------ Filen ser således ud: <html> <head> <title>RSFever</title> <LINK href="style.css" type=text/css rel=stylesheet> </head> <body bgcolor="#000000" text="#FFFFFF" link="#008000" vlink="#008000" alink="#008000"> <center><font size="5">Monster Added!</font></center> <div align="center"> <center> <table border="0"> <tr> <td>Monster Name:</td> <td><%=Request.Form("strname")%></td> </tr> <tr> <td>Location</td> <td><%=Request.Form("strlocation")%></td> </tr> <tr> <td>Level</td> <td><%=Request.Form("strlevel")%></td> </tr> <tr> <td>Members only?</td> <td><%=Request.Form("strmember")%></td> </tr> <tr> <td>Hits</td> <td><%=Request.Form("strhits")%></td> </tr> <tr> <td>Loot (Common)</td> <td><%=Request.Form("strloot_common")%></td> </tr> <tr> <td>Loot (Rare)</td> <td><%=Request.Form("strloot_rare")%></td> </tr> <tr> <td>Loot (Always)</td> <td><%=Request.Form("strloot_permanent")%></td> </tr> <tr> <td>When examine it says:</td> <td><%=Request.Form("strexamine")%></td> </tr> <tr> <td>Agressive?</td> <td><%=Request.Form("stragressive")%></td> </tr> <tr> <td>Type (Animal, Giant etc.)</td> <td><%=Request.Form("strtype")%></td> </tr> <tr> <td>Quest Monster</td> <td><%=Request.Form("strquest")%></td> </tr> </table> </center> </div> </body> </html> <% response.buffer = true Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb") Conn.Open DSN strSQL = "Insert into tbl_monsters (" strSQL = strSQL & "[name], " ' 1 strSQL = strSQL & "location, " ' 2 strSQL = strSQL & "[level], " ' 3 strSQL = strSQL & "member, " ' 4 strSQL = strSQL & "hits, " ' 5 strSQL = strSQL & "loot_common, " ' 6 strSQL = strSQL & "loot_rare, " ' 7 strSQL = strSQL & "loot_permanent, " ' 8 strSQL = strSQL & "examine, " ' 9 strSQL = strSQL & "agressive, " ' 10 strSQL = strSQL & "quest) " ' 11 strSQL = strSQL & "values('" strSQL = strSQL & Request.Form("strname") & "','" ' 1 strSQL = strSQL & Request.Form("strlocation") & "','" ' 2 strSQL = strSQL & Request.Form("strlevel") & "','" ' 3 strSQL = strSQL & Request.Form("strmember") & "','" ' 4 strSQL = strSQL & Request.Form("strhits") & "','" ' 5 strSQL = strSQL & Request.Form("strloot_common") & "','" ' 6 strSQL = strSQL & Request.Form("strloot_rare") & "','" ' 7 strSQL = strSQL & Request.Form("strloot_permanent") & "','" ' 8 strSQL = strSQL & Request.Form("strexamine") & "','" ' 9 strSQL = strSQL & Request.Form("stragressive") & "','" ' 10 strSQL = strSQL & Request.Form("strquest") & "')" ' 11 Conn.Execute(strSQL) Conn.Close Set Conn = Nothing %>
16. april 2004 - 17:02
#27
Kan du ikke lige fortælle hvad datatypen er på de forskellige kolonner i databasen?
16. april 2004 - 17:02
#28
mht fejlen "Data type mismatch in criteria expression.": Den kommer når man prøver på at sætte en værdi, ind i et tekst felt, uden at bruger ' tegn til at omkredse værdien. Omvendt, så kommer den også hvis man omkredser en tal-værdi. Med andre ord: Tal-felt: værdien må *ikke* omkredses af ' tegn (eksempel - rigtigt: 1 .. forkert: '1') Tekst-felt: værdien *skal* omkredses af ' tegn (eksempel - rigtigt: 'noget' .. forkert: noget)
16. april 2004 - 17:03
#29
kimovitch, hvis du henter .rar filen, kan du selv se det.. :D
16. april 2004 - 17:07
#30
de formularer som kun indeholder tal er: strlevel og strhits... Men, data-typen i DB'en er lavet til tekst, så den burde være ligeglad?
16. april 2004 - 17:14
#31
Prøv for test at tilføje et par linjer som udskriver din SQL sætning som altid er en god ide også. Prøv evt. at vise den her, så kan vi måske bedre se hvad der mangler. Så ret dennelinje: Conn.Execute(strSQL) Til disse: response.write strSQL response.end Conn.Execute(strSQL)
16. april 2004 - 17:15
#32
Hvis den ikke virker med "'" & request.form("strlevel") & "'", prøv med CStr(request.form("strlevel")) CStr: omdanner en værdi til en streng.
16. april 2004 - 17:20
#33
Har rettet inputtet til ja/nej felterne Dette virker hos mig: <% response.buffer = true Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; " DSN = DSN & "DBQ=" & Server.MapPath("cgi-bin/itemsandmonsters.mdb") Conn.Open DSN strSQL = "Insert into tbl_monsters (" strSQL = strSQL & "[name], " ' 1 strSQL = strSQL & "location, " ' 2 strSQL = strSQL & "[level], " ' 3 strSQL = strSQL & "member, " ' 4 strSQL = strSQL & "hits, " ' 5 strSQL = strSQL & "loot_common, " ' 6 strSQL = strSQL & "loot_rare, " ' 7 strSQL = strSQL & "loot_permanent, " ' 8 strSQL = strSQL & "examine, " ' 9 strSQL = strSQL & "agressive, " ' 10 strSQL = strSQL & "quest) " ' 11 strSQL = strSQL & "values('" strSQL = strSQL & Request.Form("strname") & "','" ' 1 strSQL = strSQL & Request.Form("strlocation") & "','" ' 2 strSQL = strSQL & Request.Form("strlevel") & "'," ' 3 strSQL = strSQL & Request.Form("strmember") & ",'" ' 4 strSQL = strSQL & Request.Form("strhits") & "','" ' 5 strSQL = strSQL & Request.Form("strloot_common") & "','" ' 6 strSQL = strSQL & Request.Form("strloot_rare") & "','" ' 7 strSQL = strSQL & Request.Form("strloot_permanent") & "','" ' 8 strSQL = strSQL & Request.Form("strexamine") & "'," ' 9 strSQL = strSQL & Request.Form("stragressive") & "," ' 10 strSQL = strSQL & Request.Form("strquest") & ")" ' 11 Conn.Execute(strSQL) Conn.Close Set Conn = Nothing %>
16. april 2004 - 17:30
#34
Var det ja/nej felterne der lavede alle disse problemer!?
16. april 2004 - 17:36
#35
Har du en Ja/Nej kolonne. Ja det kan drille lidt da man ikke bruger ' omkring en ja/nej kolonne.
16. april 2004 - 17:37
#36
Det var en kombination af at du havde brugt reserverede ord til kolonne-navne og at du havde apostroffer omkring ja/nej værdierne.
16. april 2004 - 17:44
#37
ok... Takker tusinde gange for hjælpen.. Vil du ha' point? så indsend svar... :D
16. april 2004 - 17:55
#38
Nu vi nogle stykker som har hjulpet så hvem mener du? men her et svar fra mig, hvis ikke det var mig så bare afvis.
16. april 2004 - 18:05
#39
Og her er et fra mig... :o)
16. april 2004 - 19:11
#40
Ingen fra mig ;-)
16. april 2004 - 20:04
#41
Well... I begge har hjulpet en hel del, så jeg splitter dem... ;-)
Kurser inden for grundlæggende programmering