TprxADOTransaction

De Pragma Wiki
Revisión del 17:34 15 may 2025 de Luciano Carou (discusión | contribs.) (Página creada con «=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…»)
(difs.) ← Revisión anterior | Revisión actual (difs.) | Revisión siguiente → (difs.)
Ir a la navegación Ir a la búsqueda

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.