AYUDA EN LÍNEA
 WINDEVWEBDEV Y WINDEV MOBILE

Ayuda / WLanguage / Administrar bases de datos / HFSQL / Funciones HFSQL
  • Casos de error
  • Manipular registros durante una transacción
  • Transacciones y contexto HFSQL independiente
  • OLE DB y Conectores Nativos
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReportes y ConsultasCódigo de Usuario (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Código Navegador
WINDEV Mobile
AndroidWidget Android iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Otros
Procedimientos almacenados
Valida la transacción actual:
  • se validan las modificaciones realizadas en el archivo de datos desde el inicio de la transacción (<variable Connection>.TransactionStart o <Variable Connection>.Transaction).
  • se borra el fichero de transacción (si esta transacción es la última transacción en curso para una aplicación de red).
  • se desbloquean los registros bloqueados en sólo lectura por la transacción.
Ejemplo
MyConnection1 is Connection
 
// Start transaction on data files associated with MyConnection1
MyConnection1.TransactionStart()
 
// Code used to prepare the order to added
// ...
 
WHEN EXCEPTION IN
// Add the order
Order.Add()
// Validate the addition
MyConnection1.TransactionEnd()
DO
// Delete the order lines
MyConnection1.TransactionCancel()
END
Sintaxis

Validar una transacción en curso en una conexión Ocultar los detalles

<Result> = <Connection>.TransactionEnd()
<Result>: Booleano
  • True STRIMEULB si la transacción ha finalizado,
  • False si se produce un problema. HErrorInfo devuelve más detalles sobre el error.
Atención: La función no tiene ningún efecto si se inicia una operación global.. Se debe utilizar la sintaxis 2.
<Connection>: Variable de tipo Connection
Nombre de la variable de tipo Conexión que describe la conexión a utilizar.

Validar una transacción global en curso Ocultar los detalles

<Result> = TransactionEnd()
<Result>: Booleano
  • True STRIMEULB si la transacción ha finalizado,
  • False si se produce un problema. HErrorInfo devuelve más detalles sobre el error.
Observaciones

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".

Manipular registros durante una transacción

Durante una transacción, se deben cumplir algunas reglas al manipular registros. Para obtener más información, consulte Transacciones: Manipular registros durante una transacción.

Transacciones y contexto HFSQL independiente

Al copiar un contexto, si una transacción está en curso en el primer contexto, el nuevo contexto no está en la transacción.. Debe llamar a <variable Connection>.TransactionStart (o <Variable Connection>.Transaction) para iniciar una transacción en el nuevo contexto.
WINDEVOLE DBConectores Nativos

OLE DB y Conectores Nativos

Sólo se tienen en cuenta las sintaxis con conexión en la Conectores Nativos (también llamada accesos nativos) que soportan las transacciones. También se puede utilizar la función SQLTransaction.
Componente: wd290hf.dll
Versión mínima requerida
  • Versión 25
Esta página también está disponible para…
Comentarios
Haga clic en [Agregar] para publicar un comentario

Última modificación: 20/06/2023

Señalar un error o enviar una sugerencia | Ayuda local