---
title: "Command/transaction"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/101189-command-transaction"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "Andreas L"
published: "2004-04-09T16:17:43.000Z"
updated: "2004-04-12T17:30:24.000Z"
replies: 5
views: 343
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/101189-command-transaction"
---

# Command/transaction

## #1 — Andreas L, 2004-04-09T16:17Z

Hej!

Jag behöver köra en updatesats genom en loop, och vill därför använda någon transaction ifall det skulle bli fel. 

Har för tillfället kört updaten med Commandobjekt, i stället för att köra med execute-metoden i Connectionobjektet. 

Men kan jag köra med transaction på något enkelt sätt när jag använder commandobjektet, eller behöver jag byta till connection-objektet för detta? 
Jag har använt command-objektet eftersom jag har förstått att det skall vara snabbare?

/Tack på förhand!

Permalänk: https://www.webforum.nu/p/101189

## #2 — emission, 2004-04-11T13:26Z

Kör Command-objektet med en aktiv Connection.

Permalänk: https://www.webforum.nu/p/1319374

## #3 — Andreas L, 2004-04-11T19:28Z

Hej Emission! 

Du säger att jag skall köra med en active connection, så här ser koden ut idag....

```
set Com1 = Server.CreateObject("ADODB.Command")
Com1.ActiveConnection = kopplingssträng
'påbörja transaktion?
for i = 1 to n_times

Com1.CommandText = "UPDATE blablablabl..blabla..."
Com1.CommandType = 1
Com1.CommandTimeout = 0
Com1.Prepared = True
Com1.Execute()

Next
'kontrollera felnummer..
'fullfölja eller avbryta transaktion..
```

Jag förstår dock inte riktigt hur du menar?

Hur anger jag att transaktionen skall på börjas och avslutas? Jag har inte sett några sådana egenskaper för commandobjektet. 
Hur kontrolleras om något fel(felnummer) uppstått ex.? Så att jag då kan informera användaren. 
Jag har inte tidigare använt mig av commandobjektet så här, så jag är ganska vilsen... Jag kanske har fattat helt fel?

Är dock supertacksam för all hjälp!  :)

Permalänk: https://www.webforum.nu/p/1319602

## #4 — emission, 2004-04-11T20:37Z

Med en aktiv connection menar jag att du ska använda en ADODB.Connection som ActiveConnection, i stället för att bara skicka in kopplingssträngen. Du ska alltså använda **både** Connection och Command.

Permalänk: https://www.webforum.nu/p/1319627

## #5 — Andreas L, 2004-04-12T09:12Z

Tack för hjälpen! 
följande... 

```
[1]
set myconn = Server.CreateObject("adodb.connection")
myconn.open databaskoppling
insert

sub insert
on error resume next
myconn.begintrans

			set com1 = Server.CreateObject("ADODB.Command")
			com1.ActiveConnection = myconn
	for i = 1 to 10
	
			com1.CommandText = "INSERT INTO t1 (invarde) VALUES (" & i & ")"
			com1.CommandType = 1
			com1.CommandTimeout = 0
			com1.Prepared = True
			com1.Execute()
			if err.number <> 0 then
			felsub
			exit sub 'avsluta subrutinen om fel inträffar
			end if
	next
			myconn.committrans 'om alla operationer lyckas...
end sub

sub felsub
response.Write(err.number)
	myconn.rollbacktrans
'ev. operationer
end sub[/1]
```

...fungerade hur fint som helst!  :bire

Permalänk: https://www.webforum.nu/p/1319763

## #6 — emission, 2004-04-12T17:30Z

Toppen! Kom ihåg att stänga databaskopplingen, såväl efter Commit som efter Rollback. 

/emission

Permalänk: https://www.webforum.nu/p/1320022

---

Tråden på webben: https://www.webforum.nu/amne/asp/101189-command-transaction
