Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ha manuális véglegesítési módban szeretne véglegesíteni vagy visszaállítani egy tranzakciót, egy alkalmazás meghívja az SQLEndTrant. A tranzakciókat támogató DBMS-illesztőprogramok általában egy COMMIT vagy ROLLBACK utasítás végrehajtásával implementálják ezt a függvényt. Az Illesztőprogram-kezelő nem hívja meg az SQLEndTrant , ha a kapcsolat automatikus véglegesítési módban van; egyszerűen SQL_SUCCESS ad vissza, még akkor is, ha az alkalmazás megpróbálja visszaállítani a tranzakciót. Mivel a tranzakciókat nem támogató DBMS-ekhez tartozó illesztőprogramok mindig automatikus véglegesítési módban vannak, az SQLEndTran implementálásával anélkül térhetnek vissza SQL_SUCCESS, hogy semmit se tegyenek, vagy egyáltalán ne implementálják.
Megjegyzés:
Az alkalmazások nem véglegesíthet és nem hozhatnak vissza tranzakciókat a COMMIT vagy ROLLBACK utasítások SQLExecute vagy SQLExecDirect használatával történő végrehajtásával. Ennek hatásai nincsenek meghatározva. A lehetséges problémák közé tartozik, hogy az illesztőprogram már nem tudja, mikor aktív egy tranzakció, és ezek az utasítások sikertelenek a tranzakciókat nem támogató adatforrásokkal szemben. Ezeknek az alkalmazásoknak inkább az SQLEndTran-t kell meghívni.
Ha egy alkalmazás átadja a környezeti leírót az SQLEndTran-nak , de nem ad át kapcsolati leírót, az Illesztőprogram-kezelő elméletileg meghívja az SQLEndTrant a környezeti leíróval minden olyan illesztőprogramhoz, amely egy vagy több aktív kapcsolattal rendelkezik a környezetben. Az illesztőprogram ezután véglegesíti a tranzakciókat a környezet minden kapcsolatán. Fontos azonban tisztában lenni azzal, hogy sem az illesztőprogram, sem az illesztőprogram-kezelő nem hajt végre kétfázisú véglegesítést a környezetbeli kapcsolatokon; ez csupán egy programozási kényelem az SQLEndTran egyidejű meghívásához a környezet összes kapcsolatához.
(A kétfázisú véglegesítés általában több adatforrásra kiterjedő tranzakciók véglegesítésére szolgál. Az első fázisban a rendszer lekérdezi az adatforrásokat, hogy véglegesíthetik-e a tranzakció egy részét. A második fázisban a tranzakció véglegesítése az összes adatforráson történik. Ha az adatforrások az első fázisban válaszolnak arra, hogy nem tudják véglegesíteni a tranzakciót, a második fázis nem következik be.)