TprxADOTransaction
Introducción
Todas las operaciones de actualización de la base de datos se hacen dentro de transacciones. Por ejemplo: si grabamos una factura el sistema aplicará como si fuera una sola operación el grabado de la cabecera, del detalle de esa factura y la carga impositiva. Si alguna de esas operaciones fallara en el grabado toda la transacción será ignorada. De este modo la información grabada es consistente.
El componente TprxADOTransaction (Manejo de transacciones con la base de datos.) administra las transacciones.
Identidad
- Ancestro: TComponent
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADOTransaction.pas
Declaración
type TprxADOTransaction = class(TComponent) private FQuery: TprxADOQuery; FTransactionQuery: TprxADOQuery; Freplicacion_activa: Boolean; FTransactionTimeStamp: String; FTransactionLevel: Integer; FTransactionErrors: Integer; FErrorMessages: TStringList; FRowsAffected: Integer; Fon_get_db_timestamp: Tprx_get_db_timestamp; FTransactionData: TComponent; FReplicaMsg: TComponent; protected procedure Loaded; override; function Connection: TADOConnection; procedure devlog_Catalog_Set(aValue: String); function devlog_Catalog_Get: String; procedure devlog_Tipo_Set(aValue: String); function devlog_Tipo_Get: String; procedure devlog_Codigo_Set(aValue: String); function devlog_Codigo_Get: String; procedure devlog_Subcodigo_Set(aValue: String); function devlog_Subcodigo_Get: String; procedure devlog_Operacion_Set(aValue: String); function devlog_Operacion_Get: String; procedure ErrorMessage_Show; property Query: TprxADOQuery read FQuery write FQuery; property TransactionQuery: TprxADOQuery read FTransactionQuery write FTransactionQuery; property TransactionLevel: Integer read FTransactionLevel write FTransactionLevel; property TransactionErrors: Integer read FTransactionErrors write FTransactionErrors; property ErrorMessages: TStringList read FErrorMessages write FErrorMessages; property TransactionData: TComponent read FTransactionData write FTransactionData; property ReplicaMsg: TComponent read FReplicaMsg write FReplicaMsg; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; function SQLCommands_Count: Integer; procedure SQLCommands_Clear; procedure SQLCommands_Add(aSQL: String; aCheckCommand: Boolean); function Transaction_Start(aDataSet: TDataSet): Integer; function TransactionCommit(aEndTransaction: Boolean = True): Boolean; procedure TransactionRollback; function Replicacion_Inicializar: Boolean; property on_get_db_timestamp: Tprx_get_db_timestamp read Fon_get_db_timestamp write Fon_get_db_timestamp; property RowsAffected: Integer read FRowsAffected; property replicacion_activa: Boolean read Freplicacion_activa; property TransactionTimeStamp: String read FTransactionTimeStamp; property devlog_Catalog: String read devlog_Catalog_Get write devlog_Catalog_Set; property devlog_Tipo: String read devlog_Tipo_Get write devlog_Tipo_Set; property devlog_Codigo: String read devlog_Codigo_Get write devlog_Codigo_Set; property devlog_Subcodigo: String read devlog_Subcodigo_Get write devlog_Subcodigo_Set; property devlog_Operacion: String read devlog_Operacion_Get write devlog_Operacion_Set; published end;
Componentes TprxADOQuery
Administran las operaciones de actualización de la base de datos.
Propiedades devlog
Las propiedades devlog se usan cuando la transacción pertenece a algún objeto del catálogo. Por ejemplo, la modificación a una tabla. Sino no se usan.
Identifican a:
- devlog_Catalog es el catálogo al que pertenece el objeto modificado.
- devlog_Tipo es el tipo de objeto modificado, por ejemplo 'prxclases' para identificar a una clase.
- devlog_Codigo es el código del objeto modificado, por ejemplo el nombre de una tabla.
- devlog_Subcodigo es el subcódigo del objeto modificado, solo cuando corresponde. Por ejemplo; el nombre de un trigger asociado a una clase.
- devlog_Operacion ES EL TIPO DE OPERACIÓN (insert, log, update o delete).
Destacados
function TprxADOTransaction.Transaction_Start(aDataSet: TDataSet): Integer
Inicia la transacción inicializando las propiedades necesarias.
Obsoletos
ReplicaMsg
La propiedad property ReplicaMsg: TComponent se encuentra osbolketa y debería ser eliminada.
El componente TfvaTextMessageReplica también debería ser eliminado.