Builder.cz - Informacni server o programovani

Odběr fotomagazínu

Fotografický magazín "iZIN IDIF" každý týden ve Vašem e-mailu.
Co nového ve světě fotografie!

 

Zadejte Vaši e-mailovou adresu:

Kamarád fotí rád?

Přihlas ho k odběru fotomagazínu!

 

Zadejte e-mailovou adresu kamaráda:



MS ACCESS - ORACLE: AutoCommit transakce

Seznam témat     Nová odpověď

Přihlásit se     Registrace     Zapomenuté heslo

Re: MS ACCESS - ORACLE: AutoCommit transakce

Autor: ZdenalS

11:35:14 23.03.2011

No, pokud to někoho zajímá, odpovím si sám. :-)
Problém je trošku jiný, než jsem myslel (ako obvykle).
Pokud tabulku vyprázdním příkazem DELETE, všechno funguje normálně, i když podstatně pomaleji.
TRUNCATE je strašně rychlé , ale rollback se již potom neprovede.

Citovat příspěvek

 

MS ACCESS - ORACLE: AutoCommit transakce

Autor: ZdenalS

12:27:34 09.03.2011

Dobrý den
Už 2. den neúspěšně bojuji s transakcí na Oracle, prostřednictvím OLEDB Providera.
Ten má defaultně nastaven po každém Exekute provézt Autocommit.
Potom se mi nedaří Rollbackem vrátit data do tabulky pokud vznikne chyba při plnění tabulky pomocí strSQL2. Chtěl jsem v případě neúspěchu vrátit původní data. Rollback při chybě proběhne, ale data jsou fuč. :) Lze nějak vypnout AutoCommit? Nemáte typ jak na to?
Předem díky

Výcuc z kódu:

[ital]
Dim cn As ADODB.Connection
Dim strSQL1 as String
Dim strSQL1 as String


With cn
.Provider = "OraOLEDB.Oracle"
.Properties("Data Source").Value = "XXX"
.Properties("User ID").Value = "XXXX1"
.Properties("Password").Value = "xxx"
.Open
End With


strSQL1 = "TRUNCATE TABLE tabulka"

strSQL2 = "INSERT INTO tabulka……………………."

cn.BeginTrans

cn.Execute strSQL1

cn.Execute strSQL2
If Err.Number <> 0 Then
cn.RollbackTrans
Exit Function
Else
cn.CommitTrans
End if
[/ital]

Citovat příspěvek

 

 

 

Přihlášení k mému účtu

Uživatelské jméno:

Heslo: