Jag tänkte köra två SQL kommandon efter varandra och nu när jag börjat med att annvända Command så undrar jag helt enkelt om jag måste göra två Command (som i exemplet nedan) eller om jag, efter att ha använt det första, kan nollställa det och använda samma? känns onödigt att behöva skapa två Command.
inget svar på din fråga men sätter du command till nothing efter din första command.execute så slipper du command2 command3 osv men tror du fortfarande får skapa det igen.
Att nollställa... när man har en select query och skickar resultatet till ett recordset, så tas parametrarna på objektet bort när recordsetet stängs. Jag vet inte vad som händer i ditt fall, men det kan ju rekommenderas att ta bort dom gamla innan du lägger till nya.
Det fungerade fint att ta bort de gamla och lägga till nya. Tror ni att det är bättre att göra så än att skapa fler command objekt?
Jag lägger ju även till en SQL-sträng med kommandot:
Command.CommandText = strSQL
men det verkar inte som jag behöver göra något åt det, fungerade fint att bara skriva en ny SQL-sträng och skriva det där kommandot igen. verkar som det skriver över det tidigare. någon som kan förklara varför?
och tillslut, både RecordSet och Connections kan man stänga, men jag hittar inte någonstans hur man avslutar ett command-object. vad ska man göra med det när man inte använder det längre?
Det fungerade fint att ta bort de gamla och lägga till nya. Tror ni att det är bättre att göra så än att skapa fler command objekt?
Jag tror att det är effektivare ifall du tar bort Command-objektet och skapar ett nytt. Objektet kommer då att hamna i objekt-poolen, och det är samma objekt som du återanvänder, men helt tömt.
Calevan skrev:
Jag lägger ju även till en SQL-sträng med kommandot:
Command.CommandText = strSQL
men det verkar inte som jag behöver göra något åt det, fungerade fint att bara skriva en ny SQL-sträng och skriva det där kommandot igen. verkar som det skriver över det tidigare. någon som kan förklara varför?
I samlingen Parameters så lägger du ju till parameter-objekt, men i egenskapen CommandText så lägger du ju bara in ett värde. Det fungerar precis som en vanlig variabel, egenskapen kan bara ha ett värde i taget, alltså ersätts det tidigare värdet.
Calevan skrev:
och tillslut, både RecordSet och Connections kan man stänga, men jag hittar inte någonstans hur man avslutar ett command-object. vad ska man göra med det när man inte använder det längre?
Sätt Command.ActiveConnection till Empty och sätt referensen Command till Empty.
Det fungerade fint att ta bort de gamla och lägga till nya. Tror ni att det är bättre att göra så än att skapa fler command objekt?
Jag tror att det är effektivare ifall du tar bort Command-objektet och skapar ett nytt. Objektet kommer då att hamna i objekt-poolen, och det är samma objekt som du återanvänder, men helt tömt.
är det altså såhär du menar att man kan göra om man vill skapa två recordsets:
det fungerar, men jag vet inte om det var så du menar.
Guffa skrev:
Calevan skrev:
och tillslut, både RecordSet och Connections kan man stänga, men jag hittar inte någonstans hur man avslutar ett command-object. vad ska man göra med det när man inte använder det längre?
Sätt Command.ActiveConnection till Empty och sätt referensen Command till Empty.
hittar inget kommando som heter Empty, är det Nothing du menar dvs, Command.ActiveConnection = Nothing som jag skrev i ovan eller har jag missat något?
Ja, det var så jag menade. Du har dock glömt några Set:
Set Command.ActiveConnection = Connect Set Command.ActiveConnection = Nothing
Ifall du inte har Set på den första så kommer du bara att lägga in Connection-objektets uppkopplingssträng i Command-objektet. Därmed kommer den att göra en ny uppkoppling mot databasen när varje fråga körs, vilket är lite onödigt när du redan har en uppkoppling.
Glöm inte att avreferera Command-objektet innan du skapar ett nytt:
Set Command = Nothing
Annars kommer objektet inte att ligga i objekt-poolen när du skapar det nya objektet. Då måste den skapa ett helt nytt objekt, vilket tar mycket längre tid än att återanvända ett objekt.
Naturligtvis var det Nothing jag menade, inte Empty. (Dock finns även värdet Empty, det är det värde som alla variabler har innan man tilldelat dem något värde, och man kan också tilldela variabler värdet Empty.)
262 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25