TprxADOConnection
Introducción
La conexión a la base de datos se hace a través de un componente derivado de TADOConnection, todos los controles de la aplicación que necesitan interactuar con la base de datos lo hacen a través de ese componente del cual hay solo una instancia creada (es decir que se usa el mismo para cualquier acceso a la base de datos).
La clase TprxADOConnection (Conexión ADO a la base de datos.) permite la conexión de la aplicación a una base de datos, aunque también permite conectar con otros orígenes de datos, tales como una planilla de Excel.
Identidad
- Ancestro: TADOConnection
- Carpeta: C:\DevelopPrx\library
- Archivo: prxADOConnection.pas
Declaración
La declaración de la clase TprxADOConnection es:
type TprxADOConnection = class(TADOConnection) private FQuery: TprxADOQuery; FQuerySQL: TStringList; Flogin_domain: String; Flogin_user: String; Flogin_user_password: String; Flogin_user_es_administrador: Boolean; Flogin_user_es_administrador_USUARIO: Boolean; Flogin_domain_alias: String; Flogin_database: String; Flogin_database_original: String; Flogin_catalog_defined: Boolean; Flogin_IP: String; Flogin_release: String; Flogin_computer_id: String; Flogin_password_vencida: Integer; Flogin_password_robusta: Integer; Flogin_MACAddress: String; Flogin_time: TDateTime; Flogin_replicacion_carpeta: String; FMainConnection: Boolean; Ffvs: Boolean; FTransaction: TprxADOTransaction; FParametros: TprxPARAMS; Fdatabase_list: TStringList; Fdatabase_list_unwanted: TStringList; Futc_timestamp_last_value: String; protected procedure set_login_user(aValue: String); function catalog_defined: Boolean; property Query: TprxADOQuery read FQuery write FQuery; property QuerySQL: TStringList read FQuerySQL write FQuerySQL; property utc_timestamp_last_value: String read Futc_timestamp_last_value write Futc_timestamp_last_value; public constructor Create(AOwner: TComponent); override; destructor Destroy; override; procedure Loaded; override; function LoginWinAuthentication: Boolean; procedure change_login_user_password(a_value: String); function fva_login(a_connect_to_bd: Boolean = True): Boolean; function fva_connect(aServerName: String; aUserId: String; aPassword: String): Boolean; overload; function fva_connect(aServerName: String; aUserId: String; aPassword: String; aDatabaseName: String): Boolean; overload; function use_database(aBaseDatos: String): Boolean; function use_database_for_replication(aBaseDatos: String; aListaDominios: TStringList): Boolean; function use_original_database: Boolean; function utc_timestamp(a_agregar_ip: Boolean = True): String; function prxTimeStampDB: String; function ComputerName: String; function PASSWORD_VENCIDA_Verificar: Integer; function PASSWORD_ROBUSTA_Verificar(aClave: String): Integer; procedure MostrarListaDeComandos(aList: TStringList); overload; procedure MostrarListaDeComandos(aList: TStrings); overload; procedure AnularAutoconexionClick(Sender: TObject); function database_list_initialize: Boolean; function database_has_replication(a_bd_name: String): Boolean; property login_domain: String read Flogin_domain; property login_user: String read Flogin_user; property login_user_password: String read Flogin_user_password; property login_user_es_administrador: Boolean read Flogin_user_es_administrador write Flogin_user_es_administrador; property login_user_es_administrador_USUARIO: Boolean read Flogin_user_es_administrador_USUARIO write Flogin_user_es_administrador_USUARIO; property login_domain_alias: String read Flogin_domain_alias write Flogin_domain_alias; property login_database: String read Flogin_database; property login_database_original: String read Flogin_database_original; property login_catalog_defined: Boolean read Flogin_catalog_defined; property login_IP: String read Flogin_IP; property login_release: String read Flogin_release write Flogin_release; property login_computer_id: String read Flogin_computer_id write Flogin_computer_id; property login_password_vencida: Integer read Flogin_password_vencida; property login_password_robusta: Integer read Flogin_password_robusta; property login_MACAddress: String read Flogin_MACAddress; property login_time: TDateTime read Flogin_time; property login_replicacion_carpeta: String read Flogin_replicacion_carpeta; property Transaction: TprxADOTransaction read FTransaction write FTransaction; property Parametros: TprxPARAMS read FParametros write FParametros; property database_list: TStringList read Fdatabase_list write Fdatabase_list; property database_list_unwanted: TStringList read Fdatabase_list_unwanted write Fdatabase_list_unwanted; published property ppMainConnection: Boolean read FMainConnection write FMainConnection; property fvs: Boolean read Ffvs write Ffvs; end;
Propiedades que comienzan con Flogin_ o login
Las propiedades FLogin son las variables físicas para guardar datos sobre la conexión.
Las mismas propiedades, pero sin la F inicial son las de acceso a esas variables.
FMainConnection: Boolean
Cuando está seteada a True indica que es la conexión principal de la aplicación. Este componente solo se usa en TprxADOClientDM y al ser la única conexión de la aplicación define esa propiedad como True.
FTransaction: TprxADOTransaction
Cuando se graba una transacción se hace usando el componente TprxADOTransaction.
database_list
Guarda la lista de bases de datos encontradas a las que el usuario puede acceder. La lista unwanted contiene las bases de datos de SQL SERVER que no nos interesan (master, model, msdb, etc).
Implementación
function fva_connect(aServerName: String; aUserId: String; aPassword: String): Boolean
Esta función conecta a un servidor dados los siguientes argumentos:
- aServerName es el nombre del servidor.
- aUserId es el código del usuario.
- aPassword es la contraseña del usuario.
Retorna True si pudo conectar, False sino.
function fva_connect(aServerName: String; aUserId: String; aPassword: String; aDatabaseName: String): Boolean
Similar anterior pero agrega el nombre de la base de datos a la que se quiere conectar usando el argumento aDatabaseName.
function fva_login(a_connect_to_bd: Boolean = True): Boolean
Abre el form de login TTfva_login_form en el que el usuario ingresará los datos requeridos (dominio, usuario, clave y base de datos), una vez ingresados intenta hacer el login.
Si lo logra retorna True, sino False.
Esta función es llamada al inicio de la aplicación.
Uso
El componente solo se usa en TprxADOClientDM y es la única conexión a la base de datos que usa la aplicación.