Avatar billede dinmor Nybegynder
15. november 2002 - 00:31 Der er 13 kommentarer og
1 løsning

Opdateringer og sletning af flere Records ad gangen

Sådan ser min kode ud:

pID = Request.Form("pID")
Antal = Request.Form("Antal")

intOrderID = cstr(Session("orderID"))

Response.Write Session("OrderID")
Response.Write Antal
Response.Write pID

intOrderID = cstr(Session("orderID"))

LavDatabase Conntemp

if Antal = "0" then
SQL = "DELETE * FROM OrderItem WHERE OrderID = " & intOrderID & " AND ProduktID IN (" & pID & ")"
Else
SQL = "UPDATE OrderItem SET Antal = " & Antal & " WHERE OrderID = " & intOrderID & " AND ProduktID IN (" & pID & ")"
End If
Conntemp.Execute(SQL)

LukDatabase Conntemp

Hvorfor virker det her ikke ?! Man indtaster antal i en tesktboks siden før, men det virker slet ikke... Den viser denne fejl: Syntax error in UPDATE statement. Jeg er ved at blive sindssyg... Jeg har siddet med det hele dagen...

/Brian
Avatar billede kovalt Nybegynder
15. november 2002 - 00:32 #1
hvad er fejlfen
Avatar billede kovalt Nybegynder
15. november 2002 - 00:33 #2
fejlen? :-)
Avatar billede dinmor Nybegynder
15. november 2002 - 00:33 #3
Syntax error in UPDATE statement
Avatar billede kovalt Nybegynder
15. november 2002 - 00:44 #4
hvad er det lige den der IN gør du har i dine SQL sætninger
Avatar billede dinmor Nybegynder
15. november 2002 - 00:52 #5
Det er noget jeg en gang har fået at vide jeg sku gøre, hvis jeg sku slette flere records ad gangen... Så jeg ved det faktisk ik helt...
Avatar billede kovalt Nybegynder
15. november 2002 - 11:20 #6
det den skal gøre er vel at slette posten såfrem OrderID = "& int OrderID "& OG ProduktID = "& pID &" eller hvad?
Avatar billede kovalt Nybegynder
15. november 2002 - 11:25 #7
hvis det er det der er tilfældet skal du bare skrive:

SQL = "DELETE * FROM OrderItem WHERE OrderID = " & intOrderID & " AND ProduktID = "& pID &""
Else
SQL = "UPDATE OrderItem SET Antal = " & Antal & " WHERE OrderID = " & intOrderID & " AND ProduktID = "& pID &""

Det virker fint også selvom du skal slette flere data
Avatar billede eagleeye Praktikant
15. november 2002 - 12:12 #8
IN betyder den det samme som ligmed tegnet dog kan man med IN hvade en komman seperet liste af tal/tekst 2,3,5,7,9 som skal slettes/opdateres. Så man ikke skal lave en kilometer lan SQL sætning med tonvis af OR:

WHERE (OrderID = " & intOrderID & ") AND (ProduktID = 2 OR ProduktID = 3 OR ProduktID = 5 OR ProduktID = 7 OR ProduktID = 9)

Er kolonnerne Antal, orderID og ProduktID alle defineretet som tal i databasen.. Hvis Ja :

Så er det sikkert en stavefejl i et kolonne navn.
Avatar billede dinmor Nybegynder
15. november 2002 - 13:11 #9
Der er intet af det der virker :o/ Og ja alle kolonnerne er defineret dom tal...
Avatar billede eagleeye Praktikant
15. november 2002 - 14:38 #10
Prøv at ud skrive SQL sætning og vis den her:

response.write SQL
Avatar billede eagleeye Praktikant
15. november 2002 - 14:40 #11
Eller prøv at sætte [] omkring navne det kan være der er noget som driller den:

SQL = "UPDATE [OrderItem] SET [Antal] = " & Antal & " WHERE [OrderID] = " & intOrderID & " AND [ProduktID] IN (" & pID & ")"
Avatar billede dinmor Nybegynder
16. november 2002 - 01:15 #12
Her selv fundet ud af det...
Avatar billede eagleeye Praktikant
16. november 2002 - 01:17 #13
og det var?
Avatar billede kovalt Nybegynder
17. november 2002 - 18:36 #14
hvad med points?
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