Diferencia entre revisiones de «TprxADOConnection»

De Pragma Wiki
Ir a la navegación Ir a la búsqueda
Sin resumen de edición
Sin resumen de edición
Línea 133: Línea 133:
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).
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).


=Destacados=
=Implementación=
===function TprxADOConnection.fva_connect(aServerName: String; aUserId: String; aPassword: String): Boolean===
===function fva_connect(aServerName: String; aUserId: String; aPassword: String): Boolean===
Esta función conecta a un servidor dados los siguientes argumentos:
Esta función conecta a un servidor dados los siguientes argumentos:
*aServerName es el nombre del servidor.
*aServerName es el nombre del servidor.
Línea 142: Línea 142:
Retorna True si pudo conectar, False sino.
Retorna True si pudo conectar, False sino.


===function TprxADOConnection.fva_connect(aServerName: String; aUserId: String; aPassword: String; aDatabaseName: String): Boolean===
===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'''.
Similar anterior pero agrega el nombre de la base de datos a la que se quiere conectar usando el argumento '''aDatabaseName'''.


===function TprxADOConnection.fva_login(a_connect_to_bd: Boolean = True): Boolean===
===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.
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.


Línea 152: Línea 152:
Esta función es llamada al inicio de la aplicación.
Esta función es llamada al inicio de la aplicación.


===procedure TprxADOConnection.AbrirCambioClaveForm(Sender: TObject)===
===procedure AbrirCambioClaveForm(Sender: TObject)===
Abre el form [[TTprxUsuariosCambiarClaveForm]] de cambio de clave (solo para el usuario logueado) y aplica ese cambio.
Abre el form [[TTprxUsuariosCambiarClaveForm]] de cambio de clave (solo para el usuario logueado) y aplica ese cambio.


===function TprxADOConnection.CambiarClave(aAnterior: String; aNueva: String; aUsuario: String): Boolean===
===function CambiarClave(aAnterior: String; aNueva: String; aUsuario: String): Boolean===
Aplica el cambio de clave del usuario activo a la base de datos.
Aplica el cambio de clave del usuario activo a la base de datos.


=Uso=
=Uso=
Este componente se usa mucho en la aplicación.
Este componente se usa mucho en la aplicación.

Revisión del 17:35 15 may 2025

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   AbrirCambioClaveForm(Sender: TObject);
    function    CambiarClave(aAnterior: String; aNueva: String; aUsuario: String): Boolean;

    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.

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.

procedure AbrirCambioClaveForm(Sender: TObject)

Abre el form TTprxUsuariosCambiarClaveForm de cambio de clave (solo para el usuario logueado) y aplica ese cambio.

function CambiarClave(aAnterior: String; aNueva: String; aUsuario: String): Boolean

Aplica el cambio de clave del usuario activo a la base de datos.

Uso

Este componente se usa mucho en la aplicación.