Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Chcete-li potvrdit nebo vrátit transakce v režimu ručního potvrzení, aplikace volá SQLEndTran. Ovladače pro DBMS, které podporují transakce, obvykle implementují tuto funkci spuštěním příkazu COMMIT nebo ROLLBACK . Správce ovladačů nevolá SQLEndTran , pokud je připojení v režimu automatického potvrzení; jednoduše vrátí SQL_SUCCESS, i když se aplikace pokusí vrátit transakci zpět. Vzhledem k tomu, že ovladače pro DBMSs, které nepodporují transakce, jsou vždy v režimu automatického potvrzení, mohou buď implementovat SQLEndTran k vrácení SQL_SUCCESS aniž by bylo potřeba něco dělat, nebo ho neimplementovat vůbec.
Poznámka:
Aplikace by neměly potvrdit ani vrátit zpět transakce spuštěním příkazů COMMIT nebo ROLLBACK pomocí SQLExecute nebo SQLExecDirect. Účinky toho jsou nedefinované. Mezi možné problémy patří, že ovladač již neví, kdy je transakce aktivní a tyto příkazy selhávají vůči zdrojům dat, které nepodporují transakce. Tyto aplikace by měly místo toho volat SQLEndTran .
Pokud aplikace předá popisovač prostředí SQLEndTran , ale nepředá popisovač připojení, Správce ovladačů koncepčně volá SQLEndTran s popisovačem prostředí pro každý ovladač, který má jedno nebo více aktivních připojení v prostředí. Ovladač pak potvrdí transakce na každé připojení v prostředí. Je však důležité si uvědomit, že ovladač ani správce ovladačů neprovádí dvoufázové potvrzení připojení v prostředí; to je pouze programovací pohodlí pro souběžné volání SQLEndTran pro všechna připojení v prostředí.
( Dvoufázové potvrzení se obvykle používá k potvrzení transakcí, které jsou rozloženy do více zdrojů dat. V první fázi se zdroje dat dotazují, zda mohou potvrdit svou část transakce. Ve druhé fázi je transakce ve skutečnosti potvrzena ve všech zdrojích dat. Pokud některé zdroje dat odpovídají v první fázi, že nemohou potvrdit transakci, druhá fáze se nenastane.)