webForumDet fria alternativet

Con.Execute()

10 svar · 381 visningar · startad av eddy1

eddy1Medlem sedan aug. 2001969 inlägg
#1

Om jag t.ex vill uppdatera eller lägga till i en databas, kan jag då använda insert eller update i SQL satsen och sedan köra med Execute metoden till Connection ??

@ndersMedlem sedan juni 200032 969 inlägg
#2

Jepp, du behöver inte skapa något recordset om du ska göra INSERT, UPDATE eller DELETE. Du kan till och med lägga till en option (128 / adExecuteNoRecords) för att meddela ADO att det inte ska skapas något recordset.

Con.Execute strSQL,,128

Mvh

Engine^Medlem sedan dec. 20003 887 inlägg
#3

Det går också att lägga till ytterligare en variabel för att kontrollera om det lades till några poster

 [blue]'Lyckas frågan kommer [i]lngRA[/i] att innehålla det antal poster som påverkades (lades till/uppdaterades) av frågan[/blue]
Con.Execute strSQL, lngRA, 128
CalevanMedlem sedan maj 20031 173 inlägg
#4

vad kännar man på att skriva 128 i slutet? går det snabbare då?

@ndersMedlem sedan juni 200032 969 inlägg
#5

Eftersom det inte skapas något recordset så torde det gå en aning snabbare ja.

Dock är det i de flesta fall försumbart, men man förlorar aldrig på att göra rätt från början. ;)

Mvh

CalevanMedlem sedan maj 20031 173 inlägg
#6

Nu brukar jag ju alltid skriva Connect.Execute(SQL), är det dumt? och skriver jag Connect.Execute(SQL,, 128) i mitt fall då?

mozillaMedlem sedan juli 20011 084 inlägg
#7

nej, du ska skriva Connect.Execute(SQL),,128

voigtann1Medlem sedan juni 20019 519 inlägg
#8

Calevan skrev:

Nu brukar jag ju alltid skriva Connect.Execute(SQL), är det dumt? och skriver jag Connect.Execute(SQL,, 128) i mitt fall då?

!redigering!
nästan läs ovan... folk använder () för att hålla reda på saker och ting :e

Engine^Medlem sedan dec. 20003 887 inlägg
#9

mozilla skrev:

nej, du ska skriva Connect.Execute(SQL),,128

Jasså?

Skriver man endast

Connect.Execute(SQL)

Tolkas detta som

Connect.Execute(SQL, , -1)

-1 = adCmdUnspecified.

Om du vet att din fråga inte kommer att returnera något använder du dig av 128 (adCmdExecuteNoRecords), d.v.s. alla INSERT-, UPDATE-, DELETE- och DDL-frågor.

CalevanMedlem sedan maj 20031 173 inlägg
#10

sorry, men nu blev jag nog ännu mer förvirrad.

1. vad är en DDL-fråga?
2. vad gör tagen -1 dvs adCmdUnspecified?
3. är det fel att använda Connect.Execute(SQL)?

Engine^Medlem sedan dec. 20003 887 inlägg
#11

1. DDL = Data Definition Language. Med sådana frågor hanterar du metadatan. Det är t.ex. CREATE-, ALTER- och DROP-frågor och med dessa ändrar du strukturen i databasen.

2. Det betyder att det första argumentet inte är specificierat och ingen information om hur det ska tolkas skickas.

3. Nej. Det beror på sammanhanget. Men det recordset som skapas kommer alltid som readonly och således kan du inte förändra någon data med den metoden utan endast läsa den.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)