Lina Medlem sedan jan. 2001 332 inlägg Trådstart 9 aug. 2001 07:20 #1 Vad är egentligen att föredra?
Skall man skapa ett rs som man sedan uppdaterar eller skal man göra uppdateringen redan i sql-satsen...
Är det någon prestandavinst med ena eller andra sättet???
cyprys Medlem sedan dec. 2000 3 563 inlägg Det bästa är att köra en execute.
SQL = "UPDATE a SET a = 'a'"
Man märker ganska snabbt att det är en hel del mindre kod att köra än att skapa ett recSet första och sen...
Brimba Medlem sedan dec. 1999 5 874 inlägg Jag skulle föredra
connection.execute("Update...")
Öppet RS tror jag bara bör användas när det verkligen behövs. Exempelvis om du behöver hålla det öppet för att kunna hämta en precis nyskapad post.
Lina Medlem sedan jan. 2001 332 inlägg Åh! Det där med att öppna en nyskapad post hade jag inte tänkt på.....
cyprys Medlem sedan dec. 2000 3 563 inlägg Brimba: Det var så jag menade.
SQL = "SELECT äsajdäl"
conn.execute SQL
Samma sak
Ett "Öppet RS" används nästan aldrig.
Det brukar nästan alltid finnas andra bättre metoder.
Brimba Medlem sedan dec. 1999 5 874 inlägg cyprus. Notera tiden för våra svar. Jag visste inte att du hade svarat när jag skrev mitt inlägg
Hur som helst så tycker jag nog ändå att det är befogat ibland som sagt.
Låt säga att man har en räknare och ett fält. Sedan lägger man till information i fältet och vill hämta ut räknarens nummer, hur gör man det?
rs.addnew
rs("falt") = "info"
rs.update
session("raknare") = rs("counter")
rs.close
på det viset så får man det räknarnummer i det fält som man la till "info". Medan om man gör exempelvis
connection.execute("insert into..")
set RS = connection.execute("select counter .. Order by counter DESC")
session("raknare") = RS("counter")
så är det stor risk att någon annan också har lagt till ett fält, och därmed får man det räknartalet istället.
Det finns sätt att kringå detta. men mitt översta sätt tycker jag fungerar utmärkt.
cyprys Medlem sedan dec. 2000 3 563 inlägg Såg ej. Drar mig snällt tillbaka.
P PatrikB Medlem sedan mars 2000 2 836 inlägg går ju med detta:
objConn.Execute(strSQL)
strSQLcounter = "SELECT @@IDENTITY"
Set objRS = objConn.Execute(strSQLcounter)
intCounter = objRS(0)
Set objRS = Nothing
om man inte vill använda sig av adodb.recordset metoden *ler*
cya,
PatrikB
E emission Medlem sedan dec. 1999 6 721 inlägg .....om man kör Access 2000 el. SQL Server