27. oktober 2004 - 12:59
Der er
21 kommentarer og 2 løsninger
Hjælp med INSERT INTO Særning!
Jeg kan simpelthen ikke få det til at virke som det skal! En FØRSTE: strBuyProdukt = "<a href=AddProdukt.asp?id=" & rsProdukter("id") & ">" & "Smid i kurv" & "</a>" response.write ("<tr>") response.write ("<td valign='top' height='20'>") response.write ("<font face='arial' size='4'><b>") & rsProdukter("ProduktNavn") & ("<br>") & ("</b><font face='arial' size='2'>") & rsProdukter("pris") & " DKK" response.write ("</td>") response.write ("<td rowspan='2' align='right'>") response.write ("<img src='/store/produkter/") & rsProdukter("id") & ".jpg" & ("' & height='200'>") response.write ("</td>") response.write ("<tr>") response.write ("<td>") response.write rsProdukter("text") response.write ("</td>") response.write ("</tr>") response.write ("<tr>") response.write ("<td colspan='2'>") response.write ("<form name='form1' method='post' action='AddProdukt.asp?id='" & rsProdukter("id") & "'>") response.write ("<input type='text' name='antal'>") response.write ("<input type='submit' name='submit' value='Tilføj kurv'>") response.write ("</form>") response.write ("</td>") response.write ("</tr>") Session("ProduktNavn") = rsProdukter("ProduktNavn") Session("ProduktPris") = rsProdukter("pris") Den ANDEN: Session("Ordernummer") = Session("Ordernummer") Session("ProduktNavn") = Session("ProduktNavn") Session("ProduktPris") = Session("ProduktPris") Set Conn = Server.CreateObject("ADODB.Connection") DSN = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" & Server.MapPath("../../cgi-data/storedb.mdb") Conn.Open DSN strSQL = "Insert into orderindhold(" strSQL = strSQL & "ordernummer, " strSQL = strSQL & "produktnummer, " strSQL = strSQL & "produktnavn, " strSQL = strSQL & "produktPris, " strSQL = strSQL & "produktantal) " strSQL = strSQL & "values( " strSQL = strSQL & "'" & Session("Ordernummer") &"', " strSQL = strSQL & "'" & Request.QueryString("ID") & "', " strSQL = strSQL & "'" & Session("ProduktNavn") & "', " strSQL = strSQL & "'" & Session("ProduktPris") & "', " strSQL = strSQL & Request.form("ANTAL") & ")" response.write strSQL Conn.Execute(strSQL)
Annonceindlæg fra Academic Work Denmark A/S
27. oktober 2004 - 13:04
#1
Og fejlen er: Insert into orderindhold(ordernummer, produktnummer, produktnavn, produktPris, produktantal) values( '27-10-2004-1010031269', '', 'Metallica', '149', 12) Microsoft OLE DB Provider for ODBC Drivers error '80040e07' [Microsoft][ODBC Microsoft Access Driver] Data type mismatch in criteria expression. /store/AddProdukt.asp, line 41
27. oktober 2004 - 13:05
#2
nu du har write strSQL, må vi så ikke se den? Er det en SQL fejl eller en ASP-compile fejl?
27. oktober 2004 - 13:06
#3
Den fejl er nok at du forsøger at skrive tekst i et tal-felt. Måske er "ordernummer" et tal-felt? Der er "27-10-2004-10.." ikke gyligt pga. "-"
27. oktober 2004 - 13:07
#4
nej ordernummeret er ok! Den hiver ikke ID'en med over!
27. oktober 2004 - 13:07
#5
response.write ("<form name='form1' method='post' action='AddProdukt.asp?id='" & rsProdukter("id") & "'>")
27. oktober 2004 - 13:10
#6
ok, hvad ved jeg :o) Det var et gæt, da "nummer" minder om et tal :D Men så må du jo kontrollere dem en for en... hvis du sætter dem bagfra til null værdier, så kan du se hvornår den holder op med at fejle.. hvis dine felter tillader null værdier altså...
27. oktober 2004 - 13:10
#7
response.write ("<form name='form1' method='post' action='AddProdukt.asp?id=" & rsProdukter("id") & "'>")
27. oktober 2004 - 13:11
#8
Hvorfor poster du den igen?
27. oktober 2004 - 13:12
#9
Den oiginale linien havde en ' action='AddProdukt.asp?id=' Så vil action stoppe der
27. oktober 2004 - 13:14
#10
ja ok, men jeg kan ikke rigtig se hvad jeg skal bruge den til. Det er jo din SQL vi har problemer med, den ser jo ud til at være korrekt udfyldt, men den fejler ved et uoverenstemmelse i datatyperne. Hvad med produktnummer? Er det også et tekst?
27. oktober 2004 - 13:15
#11
hovsa jeg havde ikke set at det var dig hmortensen, der skrev... troede at det var bredan.. sorry :-)
27. oktober 2004 - 13:17
#12
Hvis produktnummer er et tal felt, skal du lige parse værdien til int med int(), og fjerne ''
27. oktober 2004 - 13:19
#13
Alle er tal undtagen Ordernummer 0g Produktnavn!
27. oktober 2004 - 13:20
#14
Men det er som om at den ikke rigtigt får ID'en med over....
27. oktober 2004 - 13:22
#15
Har du rettet din action i formen ? Og ny SQL: strSQL = "INSERT INTO orderindhold (" strSQL = strSQL & "ordernummer, " strSQL = strSQL & "produktnummer, " strSQL = strSQL & "produktnavn, " strSQL = strSQL & "produktPris, " strSQL = strSQL & "produktantal) " strSQL = strSQL & "VALUES (" strSQL = strSQL & "'" & Session("Ordernummer") &"', " strSQL = strSQL & Int(Request.QueryString("ID")) & ", " strSQL = strSQL & "'" & Session("ProduktNavn") & "', " strSQL = strSQL & Session("ProduktPris") & ", " strSQL = strSQL & Request.form("ANTAL") & ")"
27. oktober 2004 - 13:24
#16
Såå.... nu er de to ting rettet.... Men så kommer denne her: INSERT INTO orderindhold (ordernummer, produktnummer, produktnavn, produktPris, produktantal) VALUES ('27-10-2004-1010034167', 6, 'Guns N' Roses', 150, 12) Microsoft OLE DB Provider for ODBC Drivers error '80040e14' [Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression ''Guns N' Roses', 150, 12)'. /store/AddProdukt.asp, line 41
27. oktober 2004 - 13:25
#17
Hmm.... det er fordi den ikke kan finde ud af ' i "Guns N' Roses"!!!!!!
27. oktober 2004 - 13:25
#18
Du skal replace ' med 2 '
27. oktober 2004 - 13:26
#19
strSQL = strSQL & "'" & Replace(Session("ProduktNavn"), "'", "''") & "', "
27. oktober 2004 - 13:29
#20
Ok.... så drenge! Skal I have point?
27. oktober 2004 - 13:31
#21
Kan da godt smide et svar
27. oktober 2004 - 13:36
#22
så skidt da
27. oktober 2004 - 13:36
#23
svar
Kurser inden for grundlæggende programmering