Avatar billede bredan1977 Nybegynder
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)
Avatar billede bredan1977 Nybegynder
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
Avatar billede fixxxer Nybegynder
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?
Avatar billede fixxxer Nybegynder
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. "-"
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:07 #4
nej ordernummeret er ok!

Den hiver ikke ID'en med over!
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:07 #5
response.write ("<form name='form1' method='post' action='AddProdukt.asp?id='" & rsProdukter("id") & "'>")
Avatar billede fixxxer Nybegynder
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å...
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 13:10 #7
response.write ("<form name='form1' method='post' action='AddProdukt.asp?id=" & rsProdukter("id") & "'>")
Avatar billede fixxxer Nybegynder
27. oktober 2004 - 13:11 #8
Hvorfor poster du den igen?
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 13:12 #9
Den oiginale linien havde en '
action='AddProdukt.asp?id='

Så vil action stoppe der
Avatar billede fixxxer Nybegynder
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?
Avatar billede fixxxer Nybegynder
27. oktober 2004 - 13:15 #11
hovsa jeg havde ikke set at det var dig hmortensen, der skrev... troede at det var bredan.. sorry :-)
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 13:17 #12
Hvis produktnummer er et tal felt, skal du lige parse værdien til int med int(), og fjerne ''
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:19 #13
Alle er tal undtagen Ordernummer 0g Produktnavn!
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:20 #14
Men det er som om at den ikke rigtigt får ID'en med over....
Avatar billede hmortensen Nybegynder
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") & ")"
Avatar billede bredan1977 Nybegynder
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
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:25 #17
Hmm.... det er fordi den ikke kan finde ud af ' i "Guns N' Roses"!!!!!!
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 13:25 #18
Du skal replace ' med 2 '
Avatar billede fixxxer Nybegynder
27. oktober 2004 - 13:26 #19
strSQL = strSQL & "'" & Replace(Session("ProduktNavn"), "'", "''") & "', "
Avatar billede bredan1977 Nybegynder
27. oktober 2004 - 13:29 #20
Ok.... så drenge! Skal I have point?
Avatar billede hmortensen Nybegynder
27. oktober 2004 - 13:31 #21
Kan da godt smide et svar
Avatar billede fixxxer Nybegynder
27. oktober 2004 - 13:36 #22
så skidt da
Avatar billede fixxxer Nybegynder
27. oktober 2004 - 13:36 #23
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