TprxADODataSet
Descripción
El objeto TprxADODataSet (Ancestro común a los datasets de Pragma.) implementa funcionalidad básica para simplificar el código relacionado con las operaciones de base de datos.
De alguna manera se asemeja al componente TprxADOQuerySelect que se encuentra en la jerarquía de los queries.
Identidad
- Ancestro: TADODataSet
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADODataSet.pas
Declaración
type TprxADODataSet = class(TADODataSet) private FMessages: TprxADODataSetMessages; FAutoFindConnection: Boolean; FBatchUpdates: Boolean; FDebugView: TprxListView; FTransactionCommands: TStringList; FScreenCursor: TCursor; FDataSource: TDataSource; Ffbn_parser_object: Tfva_parser_fbn; FTransactionCommandsXtd: TprxADODataSet_Commands; FGUID: String; protected FSupportQuery: TprxADOQuery; FSupportQuerySQL: TStringList; procedure Loaded; override; function FindConnection: Boolean; property ScreenCursor: TCursor read FScreenCursor write FScreenCursor; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Activate(aLoadRecords: Boolean); virtual; procedure OnMessagesEnable(aValue: Boolean); virtual; function ConectarDirecto(aDominio: String; aUsuario: String; aClave: String; aBaseDatos: String; aAutenticacionWindows: Boolean; aSQL: String = ''): Boolean; function DomainName: String; procedure Trace(aText: String; aImageIndex: Integer = 1); function CreateDataSource: TDataSource; procedure EventoNulo(Sender: TObject); function Select(aSQLCommand: String = ''): Boolean; virtual; procedure LocalAfterScroll(DataSet: TDataSet); virtual; procedure FirstRecord(Sender: TObject); procedure PriorRecord(Sender: TObject); procedure NextRecord(Sender: TObject); procedure LastRecord(Sender: TObject); function FieldMaxValue(aFieldName: String): Integer; procedure AssignFieldValueByName(aFieldName: String; aFieldValue: Variant); virtual; procedure AssignFieldValueByName_Add(aFieldName: String; aFieldValue: Variant); function SupportQuery: TprxADOQuery; property SupportQuerySQL: TStringList read FSupportQuerySQL write FSupportQuerySQL; property Messages: TprxADODataSetMessages read FMessages; property TransactionCommandsXtd: TprxADODataSet_Commands read FTransactionCommandsXtd write FTransactionCommandsXtd; property DataSource: TDataSource read FDataSource; property fbn_parser_object: Tfva_parser_fbn read Ffbn_parser_object; property GUID: String read FGUID; published property ppAutoFindConnection: Boolean read FAutoFindConnection write FAutoFindConnection; property ppBatchUpdates: Boolean read FBatchUpdates write FBatchUpdates; property ppDebugView: TprxListView read FDebugView write FDebugView; end;
FAutoFindConnection: Boolean
El sentido de esta propiedad era indicar si el dataset debía encontrar automáticamente la conexión a la base de datos, pero finalmente ese es el comportamiento por defecto por lo que esta propiedad está OSBSOLETA y debería eliminarse.
ppBatchUpdates: Boolean
La propiedad no se usa más, se marca como OBSOLETA.
FDebugView: TprxListView
Ante la necesidad de hacer un control de los comandos ejecutados podemos instanciar esa lista para que el componente guarde algunos datos sobre su ejecución. No está en uso y se marca como OBSOLETA.
FDataSource: TDataSource
Los controles de edición que usan datos no conectan directamente a los datasets, sino que conectan a un componente denominado TDataSource que está conectado al dataset. Para simplificar la programación los componentes de tipo dataset crean su propio TDataSource y lo asignan a esta propiedad.
Ffbn_parser_object: Tfva_parser_fbn
Es el componente encargado de traducir usando los Lenguajes, el componente es Tfva_parser_fbn.
FTransactionCommandsXtd: TprxADODataSet_Commands
En lugar de usar las funciones nativas de los datasets que vuelcan los cambios hechos a la tabla a la base de datos casi automáticamente, Pragma transforma esos cambios en sentencias SQL que finalmente son aplicadas. Esta opción fue necesaria para soportar la replicación de datos. Esta propiedad guarda esos comandos.
FSupportQuery: TprxADOQuery
El dataset usa un TprxADOQuery de apoyo para algunas operaciones. El query es instanciado por este componente y asignado a esta propiedad.
Implementación
function ConectarDirecto(aDominio: String; aUsuario: String; aClave: String; aBaseDatos: String; aAutenticacionWindows: Boolean; aSQL: String = ): Boolean
Conecta un dataset directamente a una base de datos y tabla usando los argumentos:
- aDominio es el nombre del servidor.
- aUsuario es el código del usuario.
- aClave es la contraseña del usuario.
- aBaseDatos es el nombre de la base de datos.
- aAutenticacionWindows cuando es True usa la autenticación de Windows, sino usa la de SQL SERVER. En toda la aplicación se usa la autenticación de SQL SERVER.
La función no se usa.
procedure LocalAfterScroll(DataSet: TDataSet)
Procedimiento llamado cada vez que cambiamos de registro dentro de un dataset, envía un mensaje msgScroll.
function FindConnection: Boolean
Busca entre los componentes de la aplicación hasta encontrar uno que sea de tipo TprxADOConnection y tenga la propiedad ppMainConnection = True.
procedure FirstRecord(Sender: TObject)
Llama al procedimiento nativo First del dataset que lleva el cursor de los datos al primer registro, se define como un evento para poder asignarse directamente al OnClick de un botón.
procedure PriorRecord(Sender: TObject)
Llama al procedimiento nativo Prior del dataset que lleva el cursor de los datos al registro anterior al activo, se define como un evento para poder asignarse directamente al OnClick de un botón.
procedure NextRecord(Sender: TObject)
Llama al procedimiento nativo Next del dataset que lleva el cursor de los datos al registro siguiente al activo, se define como un evento para poder asignarse directamente al OnClick de un botón.
procedure LastRecord(Sender: TObject)
Llama al procedimiento nativo Last del dataset que lleva el cursor de los datos al último registro, se define como un evento para poder asignarse directamente al OnClick de un botón.
function Select(aSQLCommand: String = ): Boolean
Ejecuta la sentencia de tipo SELECT del argumento, ante problemas levanta una excepción.
function FieldMaxValue(aFieldName: String): Integer
Retorna el valor más alto del campo solicitado en el argumento de todos los registros presentes en el DataSet, el campo debe ser de tipo Integer.
procedure AssignFieldValueByName(aFieldName: String; aFieldValue: Variant)
Asigna el valor aFieldValue al campo aFieldName. El procedimiento verifica si el campo es solo lectura, si lo es modifica ese atributo antes de asignarlo y luego lo vuelve de solo lectura.
procedure AssignFieldValueByName_Add(aFieldName: String; aFieldValue: Variant)
Similar anterior pero suma el valor aFieldValue al valor existente en el campo aFieldName.
Uso
Este dataset es ampliamente usado en la aplicación, tanto por su propia definición como por sus derivadas.