|
|
|
|
- Ubicación y acceso a los archivos de datos
- Detección de un error
- Consejo: Restaurar la consistencia de la base de datos
- Casos de error
- Transacciones y contexto HFSQL independiente
- OLE DB y Conectores Nativos
<Variable Connection>.TransactionCancel (Función)
No disponible con este tipo de conexión
Si una transacción está en cursocancela todas las operaciones realizadas en los ficheros de datos de la operación desde el inicio de la operación.. En este caso, la transacción se cancela sin interrumpir la ejecución del programa. Si no hay ninguna transacción en cursorestablece la consistencia de la base de datos y cancela la transacción fallida (por ejemplo, un fallo de alimentación).. Observación: Una transacción que ha fallado puede ser cancelada por cualquier programa. El fichero de transacción se destruye automáticamente si no se comparte.. Se desbloquean los registros bloqueados por las operaciones de escritura realizadas durante la transacción. MyConnection is Connection // Start transaction on data files associated with MyConnection MyConnection.TransactionStart() Add_Order() WHEN EXCEPTION IN // Add the order Order.Add() // Validate the addition MyConnection.TransactionEnd() DO // Delete the order lines MyConnection.TransactionCancel() END
Sintaxis
Cancelar una transacción en curso o una transacción interrumpida en una conexión Client/Server Ocultar los detalles
<Result> = <Connection>.TransactionCancel()
<Result>: Booleano - True STRIMEULB si la transacción fue cancelada,
- False si se produce un problema. HErrorInfo devuelve más detalles sobre el error.
Atención: - Si una transacción está en curso en la conexión, se cancela.
- Si no hay ninguna transacción en curso, las transacciones interrumpidas se cancelan para la conexión especificada..
<Connection>: Variable de tipo Connection Nombre de la variable de tipo Conexión que describe la conexión a utilizar.
Cancelar una transacción interrumpida en una base de datos Client/Server (se debe utilizar si no hay ninguna transacción en curso) Ocultar los detalles
<Result> = <Connection>.TransactionCancel(<Database>)
<Result>: Booleano - True STRIMEULB si la transacción fue cancelada,
- False si se produce un problema. HErrorInfo devuelve más detalles sobre el error.
Atención: - Sólo se cancelan las transacciones interrumpidas en la base de datos especificada.
- Las transacciones en curso no se cancelan.
<Connection>: Variable de tipo Connection Nombre de la variable de tipo Conexión que describe la conexión a utilizar. <Database>: Cadena de caracteres Nombre de la base de datos correspondiente. Se produce un error si este parámetro corresponde a una cadena vacía (""").
Cancelar una transacción específica, relacionada con una conexión Ocultar los detalles
<Result> = <Connection>.TransactionCancel(<Transaction to cancel>)
<Result>: Booleano - True STRIMEULB si la transacción fue cancelada,
- False si se produce un problema. HErrorInfo devuelve más detalles sobre el error.
Atención: Sólo se cancelan las transacciones interrumpidas en la base de datos especificada.
<Connection>: Variable de tipo Connection Nombre de la variable de tipo Conexión que describe la conexión a utilizar. <Transaction to cancel>: Entero Identificador de la transacción que se cancelará para la conexión especificada. Este identificador es devuelto por <Variable Connection>.TransactionList. Observaciones Ubicación y acceso a los archivos de datos Antes de llamar a la función <Variable Connection>.TransactionCancel, los archivos de datos manipulados por la transacción cancelada deben ser: Detección de un error Cuando el programa detecta un error (gestión de errores con WHILE EXCEPTION, por ejemplo), la función <Variable Connection>.TransactionCancel permite: Consejo: Restaurar la consistencia de la base de datos Si se produce una avería (corte de corriente, reinicio,...) durante una transacción, los archivos de datos pueden dañarse.: la transacción no fue ni validada ni cancelada. El archivo de la transacción se encuentra todavía en el equipo. Para restaurar la consistencia de la base de datos, debe proponer en su aplicación: Observación: esta operación puede ser bastante larga (según el número de operaciones realizadas en la transacción). Casos de error - Operaciones de anidamiento: Las transacciones no se pueden anidar (es decir, no se puede llamar a <variable Connection>.TransactionStart o <Variable Connection>.Transaction en una transacción). En este caso, se produce el error 70031.
- Se muestra un error fatal en los siguientes casos:
- Se inicia una transacción en todas las conexiones mientras haya al menos una conexión en la transacción..
- Se inicia una operación en una conexión mientras que ya se ha iniciado una operación en todas las conexiones..
- Se inicia una transacción en todas las conexiones mientras haya al menos una conexión cuyo modo de aislamiento no sea "Lectura no comprometida".
Transacciones y contexto HFSQL independiente
Esta página también está disponible para…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|