Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Als u een transactie wilt doorvoeren of terugdraaien in de modus handmatig doorvoeren, roept een toepassing SQLEndTran aan. Stuurprogramma's voor DBMSs die transacties ondersteunen, implementeren deze functie doorgaans door een COMMIT - of ROLLBACK-instructie uit te voeren. Driver Manager roept SQLEndTran niet aan wanneer de verbinding zich in de modus voor automatisch doorvoeren bevindt; het retourneert gewoon SQL_SUCCESS, zelfs als de toepassing probeert de transactie terug te draaien. Omdat stuurprogramma's voor DBMS's die geen ondersteuning bieden voor transacties zich altijd in de modus voor automatisch doorvoeren bevinden, kunnen ze SQLEndTran implementeren om SQL_SUCCESS te retourneren zonder iets te doen of helemaal niet te implementeren.
Opmerking
Toepassingen mogen geen transacties doorvoeren of terugdraaien door COMMIT - of ROLLBACK-instructies uit te voeren met SQLExecute of SQLExecDirect. De gevolgen hiervan zijn niet gedefinieerd. Mogelijke problemen zijn onder meer het stuurprogramma die niet meer weet wanneer een transactie actief is en deze instructies mislukken ten opzichte van gegevensbronnen die geen transacties ondersteunen. Deze toepassingen moeten in plaats daarvan SQLEndTran aanroepen.
Als een toepassing de omgevingsgreep doorgeeft aan SQLEndTran , maar geen verbindingsgreep doorgeeft, roept Driver Manager SQLEndTran conceptueel aan met de omgevingsgreep voor elk stuurprogramma met een of meer actieve verbindingen in de omgeving. Het stuurprogramma voert vervolgens de transacties door voor elke verbinding in de omgeving. Het is echter belangrijk om te beseffen dat noch het stuurprogramma noch de Driver Manager een doorvoer in twee fasen uitvoert op de verbindingen in de omgeving; Dit is slechts een programmeergemak om SQLEndTran tegelijkertijd aan te roepen voor alle verbindingen in de omgeving.
(Een doorvoer in twee fasen wordt doorgaans gebruikt voor het doorvoeren van transacties die zijn verspreid over meerdere gegevensbronnen. In de eerste fase worden de gegevensbronnen gecontroleerd of ze hun deel van de transactie kunnen doorvoeren. In de tweede fase wordt de transactie daadwerkelijk doorgevoerd in alle gegevensbronnen. Als gegevensbronnen in de eerste fase reageren dat ze de transactie niet kunnen doorvoeren, vindt de tweede fase niet plaats.)