Avatar billede chaser64 Nybegynder
24. januar 2006 - 23:24 Der er 3 kommentarer og
1 løsning

Fejl ved sletning af række

Hej Eksperter,
Jeg får følgende fejl når jeg prøver at slette en række:
ADODB.Recordset error '800a0cb3'

Current Recordset does not support updating. This may be a limitation of the provider, or of the selected locktype.

/xxx.asp, line 496

Min kode ser således ud:
Set rs_basket_line = Server.CreateObject("ADODB.RecordSet")
rs_basket_line.open "Select * From [Shop_Basket] where Site_Id = " & Site_Id & " and Session_Id = " & Session.SessionID & " order by Id DESC", Conn,1,3
Do while not rs_basket_line.eof

Amount = CDbl(rs_basket_line("Amount"))
Price = CDbl(rs_basket_line("Price"))
Price_total_line = Amount * Price
Price_total = Price_total + Price_total_line

rs_basket_line.delete [Linie 496]
rs_basket_line.update

rs_basket_line.MoveNext
Loop
rs_basket_line.close

Det har før virket, men har nu skiftet til min egen MsSql server, brugte også MsSql før, der blot hos Wannafind.

Er der nogen gode råd?

På forhånd mange tak
/Casper
Avatar billede fennec Nybegynder
25. januar 2006 - 08:57 #1
Brug den "rigtige" update/delete syntax. Det virker uanset hvilken database du bruger:

"update dinTabel set kol1='nyVærdi', kol2=321 where id=123"
"delete from dinTabel where id=123"
Avatar billede chaser64 Nybegynder
25. januar 2006 - 09:44 #2
Tak for din kommentar, kan jeg logge dig til at komme med et kode eksempel på det til den Sql sætning jeg har? Så får du naturligvis de 60 point :)
Avatar billede fennec Nybegynder
25. januar 2006 - 10:17 #3
Du skal bare slette de to delete og update linjer, også smide en delete syntax efter loopet som er magen til din select:

Set rs_basket_line = Server.CreateObject("ADODB.RecordSet")
rs_basket_line.open "Select * From [Shop_Basket] where Site_Id = " & Site_Id & " and Session_Id = " & Session.SessionID & " order by Id DESC", Conn,1,3
Do while not rs_basket_line.eof

Amount = CDbl(rs_basket_line("Amount"))
Price = CDbl(rs_basket_line("Price"))
Price_total_line = Amount * Price
Price_total = Price_total + Price_total_line

rs_basket_line.MoveNext
Loop
rs_basket_line.close
conn.execute("Delete From [Shop_Basket] where Site_Id = " & Site_Id & " and Session_Id = " & Session.SessionID)

ps. kræver at conn er et ADODB.Connection objekt.
Avatar billede chaser64 Nybegynder
25. januar 2006 - 10:58 #4
Mange tak, det virker perfekt nu :)
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