22. maj 2002 - 15:31Der er
23 kommentarer og 1 løsning
Slet flere Rcords på en gang?
Jeg vil slette x antal records på een gang, men får følgende fejl...
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14) [Microsoft][ODBC Microsoft Access Driver] Syntax error (comma) in query expression '(id =8, 11)'.
Hvis jeg ikke må bruger komma, er der så en anden måde at gøre det på? Eller skal jeg lave en lykke der splitter med komma?
-du kan kun slette én record ad gangen... ellers skulle du gøre sådan her:
arrSlet = Split(slet, ",") For i = Ubound(ArrSlet()) If Slet <> "" Then Forbindelse.Execute("Delete From Tagwall WHERE (id =" & ArrSlet(i) & ")") End if Next
Slet = Request.Querystring("slet_tagwall") SplitSlet = Split(Slet,",") For T = LBound(SplitSlet) to UBound(SplitSlet) Forbindelse.Execute("Delete From Tagwall WHERE (id =" & SplitSlet(T) & ")") Next
jepper: havde du ikke netop en komma-separeret liste af tal du ville slette? Så behøver du ikke dele dem op i flere, du kan nøjes med at bruge IN i stedet for at dele den op.
...Eller du prøvede den måske og den virkede ikke?
Jepper: det er nu mere fordi din funktion er lidt tosset at bruge - langt mere ressourcekrævende og uelegant - når nu access har en indbygget funktion til det.
Kan jeg så bruger variablen slet inde i IN ()'en? sådan her: Forbindelse.Execute("DELETE FROM Tagwall WHERE id IN ("& Slet &")") Det er namlig fordi jeg ikke kan få det til at virke på den måde...
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.