10. februar 2006 - 17:04Der er
14 kommentarer og 1 løsning
Opdater ca 100 specifikke records (asp/access)
Jeg har en liste (array) over record-id og en true/false. Jeg vil gerne opdatere hver record til nyeste tilstand (true/false) - Teoretisk: update database for x=1 to 100 set ledig=array(x) 'true eller false where recordid=x next
Skal alle records i arrayet sættes til samme værdi? Altså enten alle sammen til true eller allesammen til false? Og hvor kommer Acces egentligt ind i sammenhængen?
access = databasen (ligger i en mdb fil) Nej, hver recordid har vilkårlig værdi (true eller false) som er sat i array'et recordid ledig 1 true 2 true 3 false
f.eks.
Så vil jeg på et tidspunkt ændre værdierne, og har i arrayet styr på hvilke recordid'er der skal være true eller false. 1 true 2 false 3 false
ja - men så skyder jeg 100 SQL kommandoer af. Er der ikke en smartere måde, f.eks. via recordset? - så kunne jeg ændre mine 100 rækker, og derefter skyde dem samlet af? Men det er måske ligemeget med de 100 gange SQL+execute kommandoer? (performance, fejl undervej osv)
For idx=LBound(ditArray) To UBound(ditArray) If ditArray = True Then If idTrue <> "" Then idTrue = idTrue & "," idTrue = idTrue & idx Else If idFalse <> "" Then idFalse = idFalse & ", " idFalse = idFalse & idx End If Next
sql = "UPDATE dinTabel SET ledig=True WHERE id IN (" & idTrue ")" Conn.Execute(sql)
sql = "UPDATE dinTabel SET ledig=False WHERE id IN (" & idFalse ")" Conn.Execute(sql)
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.