Este artigo tem como objetivo demonstrar como criar uma classe de conexão ao banco de dados, a ser utilizada em um projeto orientado a objetos e a utilização desta classe para realizar as operações do CRUD (acrônimo de Create, Retrieve, Update e Delete em língua Inglesa) para as quatro operações básicas utilizadas em bancos de dados relacionais (RDBMS) ou em interface para usuários para criação, consulta, atualização e destruição de dados.

Para tanto criaremos três classes básicas demonstrando o procedimento:

Primeiro vamos criar a classe de conexão. Neste exemplo vamos conectar em um banco de dados Firebird. Os parâmetros da conexão encontram-se em um arquivo .INI gravado no diretório da aplicação chamado config.ini, cujo conteúdo segue abaixo:

Conteúdo da seção Dados do arquivo .INI


DriverName=Firebird<br>

UserName=sysdba<br>

PassWord=masterkey<br><br>

 

Servidor=127.0.0.1/3050<br>

Database=C:\Projetos\Database\ICOMBASE.FDB

Abaixo o código da unit uConexaoBanco.pas que cria a classe de conexão:


unit uConexaoBanco;

 

interface

 

uses

  SqlExpr, inifiles, SysUtils, Forms, uGFunctions;

 

 

type

   TConexaoBanco = class

      private

       FConexaoBanco : TSQLConnection;

 

      public

       constructor Create;

       destructor  Destroy; override;

 

       function GetConexao : TSQLConnection;

       property ConexaoBanco : TSQLConnection   read GetConexao;

 

   end;

 

 

implementation

 

{ TConexaoBanco }

 

constructor TConexaoBanco.Create;

var ArquivoINI, Servidor, Caminho, DriverName, UserName, PassWord : string;

    LocalServer : Integer;

    Configuracoes : TIniFile;

begin

   ArquivoINI := ExtractFilePath(Application.ExeName) + '\config.ini';

 

   if not FileExists(ArquivoINI) then

    begin

     Erro('Arquivo de Config não Encontrado - Entre em contato como suporte técnico!');

     Exit;

    end;

 

   // Carregando as informações do arquivo de configurações

   Configuracoes := TIniFile.Create(ArquivoINI);

   Try

     Servidor   := Configuracoes.ReadString('Dados', 'Servidor',   Servidor);

     Caminho    := Configuracoes.ReadString('Dados', 'DataBase',   Caminho);

     DriverName := Configuracoes.ReadString('Dados', 'DriverName', DriverName);

     UserName   := Configuracoes.ReadString('Dados', 'UserName',   UserName);

     PassWord   := Configuracoes.ReadString('Dados', 'PassWord',   PassWord);

   Finally

     Configuracoes.Free;

   end;

 

   try

     FConexaoBanco := TSQLConnection.Create(Application);

     FConexaoBanco.ConnectionName := 'FBConnection';

     FConexaoBanco.DriverName     := 'Firebird';

     FConexaoBanco.LibraryName    := 'dbxfb.dll';

     FConexaoBanco.VendorLib      := 'fbclient.dll';

     FConexaoBanco.GetDriverFunc  := 'getSQLDriverINTERBASE';

     FConexaoBanco.LoginPrompt    := False;

     //

     FConexaoBanco.Connected  := False;

     FConexaoBanco.Params.Values['DataBase']   := Servidor + ':' + Caminho;

     FConexaoBanco.Params.Values['User_Name']  := UserName;

     FConexaoBanco.Params.Values['Password']   := PassWord;

     FConexaoBanco.Connected  := True;

   except

     Erro('Erro ao Conectar o Banco de dados. Verifique as preferencias do sistema!');

   end;

 

end;

 

destructor TConexaoBanco.Destroy;

begin

  FConexaoBanco.Free;

  inherited;

end;

 

function TConexaoBanco.GetConexao: TSQLConnection;

begin

   Result := FConexaoBanco;

end;

 

end.

Em seguida vamos criar uma outra classe que será a controladora da conexão.

Também nessa classe vamos criar uma propriedade do tipo TSQLQuery que será usada em consultas gerais ao banco. Alguns podem perguntar: tudo isso não poderia fazer parte da classe de conexão? A resposta é sim , entretanto, por questão de preferências pessoais e considerar uma boa pratica separar as classes em units diferentes e de acordo com suas funcionalidades optei por utilizar esta estrutura.

Então vamos à classe de controle:

unit uControle;

 

interface

uses

   Windows, Messages, SysUtils, Classes,  Controls, Forms, Dialogs,

   Variants, Contnrs,  DBXFirebird, SqlExpr,  StrUtils, inifiles,

   uConexaoBanco;

 

type

  TControle = class

    private

      FConexao  : TConexaoBanco;

      FSqqGeral : TSQLQuery;

    public

 

     constructor Create;

     destructor  Destroy; override;

     property SqqGeral : TSQLQuery read FSqqGeral write FSqqGeral;

 

  end;

 

implementation

 

{ TControle }

constructor TControle.Create;

begin

   FConexao  := TConexaoBanco.Create;

   FSqqGeral := TSQLQuery.Create(Application);

   FSqqGeral.SQLConnection := FConexao.ConexaoBanco;

end;

 

destructor TControle.Destroy;

begin

  inherited;

end;

 

end.

Agora finalmente criamos uma classe que será responsável por realizar o CRUD de um cadastro de clientes no banco. No OnCreate desta classe é passado como parâmetro a classe Tcontrole, que contem a conexão ao banco e a TSQLQuery.


unit uClienteControle;

interface

uses

Windows, SysUtils, Classes, Controls, Forms, ComCtrls, uControle;

type

TClienteControle = class

private

FCodigo : String;

FNome : String;

FCpfCnpj : String;

FIdentidade : String;

FEndereco : String;

FPontoRef : String;

FBairro : String;

FCidade : String;

FEstado : String;

FCep : String;

FFone1 : String;

FFone2 : String;

FCelular : String;

FDataCadastro : TDate;

FDataUltimaCompra : TDate;

FDataNascimento : TDate;

FSexo : String;

FEstadoCivil : String;

FLimiteDeCredito : Currency;

FEmail : String;

FGrupoCliente : String;

FArea : String;

FStatus : String;

FObservacoes : String;

// Classe de Persistencia ...

Fcontrole :TControle;

public

 

constructor Create(pConexaoControle:TControle);

destructor Destroy; override;

//

function InsereCliente : Boolean;

function AlteraCliente : Boolean;

function ExcluirCliente : Boolean;

function PesquisaCliente (pCodigo:string):TClienteControle;

//

 

property Codigo : String read FCodigo write FCodigo;

property Nome : String read FNome write FNome;

property CpfCnpj : String read FCpfCnpj write FCpfCnpj;

property Identidade : String read FIdentidade write FIdentidade;

property Endereco : String read FEndereco write FEndereco;

property PontoRef : String read FPontoRef write FPontoRef;

property Bairro : String read FBairro write FBairro;

property Cidade : String read FCidade write FCidade;

property Estado : String read FEstado write FEstado;

property Cep : String read FCep write FCep;

property Fone1 : String read FFone1 write FFone1;

property Fone2 : String read FFone2 write FFone2;

property Celular : String read FCelular write FCelular;

property DataCadastro : TDate read FDataCadastro write FDataCadastro;

property DataUltimaCompra : TDate read FDataUltimaCompra write FDataUltimaCompra;

property DataNascimento : TDate read FDataNascimento write FDataNascimento;

property Sexo : String read FSexo write FSexo;

property EstadoCivil : String read FEstadoCivil write FEstadoCivil;

property LimiteDeCredito : Currency read FLimiteDeCredito write FLimiteDeCredito;

property Email : String read FEmail write FEmail;

property GrupoCliente : String read FGrupoCliente write FGrupoCliente;

property Area : String read FArea write FArea;

property Status : String read FStatus write FStatus;

property Observacoes : String read FObservacoes write FObservacoes;

 

end;

 

implementation

{ TClienteControle }

function TClienteControle.AlteraCliente: Boolean;

begin

FControle.sqqGeral.Close;

FControle.sqqGeral.SQL.Clear;

FControle.sqqGeral.SQL.Add(' UPDATE TBL_CLIENTES ');

FControle.sqqGeral.SQL.Add(' SET CLI_NOME = :vCLI_NOME, ');

FControle.sqqGeral.SQL.Add(' CLI_CPF_CNPJ = :vCLI_CPF_CNPJ, ');

FControle.sqqGeral.SQL.Add(' CLI_RG_INSCR = :vCLI_RG_INSCR, ');

FControle.sqqGeral.SQL.Add(' CLI_ENDERECO = :vCLI_ENDERECO, ');

FControle.sqqGeral.SQL.Add(' CLI_PONTO_REFERENCIA = :vCLI_PONTO_REFERENCIA, ');

FControle.sqqGeral.SQL.Add(' CLI_BAIRRO = :vCLI_BAIRRO, ');

FControle.sqqGeral.SQL.Add(' CLI_CIDADE = :vCLI_CIDADE, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO = :vCLI_ESTADO, ');

FControle.sqqGeral.SQL.Add(' CLI_CEP = :vCLI_CEP, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE1 = :vCLI_FONE1, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE2 = :vCLI_FONE2, ');

FControle.sqqGeral.SQL.Add(' CLI_CELULAR = :vCLI_CELULAR, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_CADASTRO = :vCLI_DTA_CADASTRO, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_ULTIMA_COMPRA = :vCLI_DTA_ULTIMA_COMPRA, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_NASCIMENTO = :vCLI_DTA_NASCIMENTO, ');

FControle.sqqGeral.SQL.Add(' CLI_SEXO = :vCLI_SEXO, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO_CIVIL = :vCLI_ESTADO_CIVIL, ');

FControle.sqqGeral.SQL.Add(' CLI_LIMITE_CREDITO = :vCLI_LIMITE_CREDITO, ');

FControle.sqqGeral.SQL.Add(' CLI_EMAIL = :vCLI_EMAIL, ');

FControle.sqqGeral.SQL.Add(' GRP_ID = :vGRP_ID, ');

FControle.sqqGeral.SQL.Add(' ARE_ID = :vARE_ID, ');

FControle.sqqGeral.SQL.Add(' CLI_STATUS = :vCLI_STATUS, ');

FControle.sqqGeral.SQL.Add(' CLI_OBSERVA = :vCLI_OBSERVA ');

FControle.sqqGeral.SQL.Add(' WHERE (CLI_ID = :vCLI_ID) ');

 

FControle.sqqGeral.ParamByName('vCLI_ID').AsString := Self.Codigo;

FControle.sqqGeral.ParamByName('vCLI_NOME').AsString := Self.Nome;

FControle.sqqGeral.ParamByName('vCLI_CPF_CNPJ').AsString := Self.CpfCnpj;

FControle.sqqGeral.ParamByName('vCLI_RG_INSCR').AsString := Self.Identidade;

FControle.sqqGeral.ParamByName('vCLI_ENDERECO').AsString := Self.Endereco;

FControle.sqqGeral.ParamByName('vCLI_PONTO_REFERENCIA').AsString := Self.PontoRef;

FControle.sqqGeral.ParamByName('vCLI_BAIRRO').AsString := Self.Bairro;

FControle.sqqGeral.ParamByName('vCLI_CIDADE').AsString := Self.Cidade;

FControle.sqqGeral.ParamByName('vCLI_ESTADO').AsString := Self.Estado;

FControle.sqqGeral.ParamByName('vCLI_CEP').AsString := Self.Cep;

FControle.sqqGeral.ParamByName('vCLI_FONE1').AsString := Self.Fone1;

FControle.sqqGeral.ParamByName('vCLI_FONE2').AsString := Self.Fone2;

FControle.sqqGeral.ParamByName('vCLI_CELULAR').AsString := Self.Celular;

FControle.sqqGeral.ParamByName('vCLI_DTA_CADASTRO').AsDate := Self.DataCadastro;

FControle.sqqGeral.ParamByName('vCLI_DTA_ULTIMA_COMPRA').AsDate := Self.DataUltimaCompra;

FControle.sqqGeral.ParamByName('vCLI_DTA_NASCIMENTO').AsDate := Self.DataNascimento;

FControle.sqqGeral.ParamByName('vCLI_SEXO').AsString := Self.Sexo;

FControle.sqqGeral.ParamByName('vCLI_ESTADO_CIVIL').AsString := Self.EstadoCivil;

FControle.sqqGeral.ParamByName('vCLI_LIMITE_CREDITO').AsCurrency := Self.LimiteDeCredito;

FControle.sqqGeral.ParamByName('vCLI_EMAIL').AsString := Self.Email;

FControle.sqqGeral.ParamByName('vGRP_ID').AsString := Self.GrupoCliente;

FControle.sqqGeral.ParamByName('vARE_ID').AsString := Self.Area;

FControle.sqqGeral.ParamByName('vCLI_STATUS').AsString := Self.Status;

FControle.sqqGeral.ParamByName('vCLI_OBSERVA').AsString := Self.Observacoes;

//

try

FControle.sqqGeral.ExecSQL;

Result := True;

except

Result := False;

end;

end;

 

constructor TClienteControle.Create(pConexaoControle:TControle);

begin

Fcontrole := pConexaoControle;

end;

 

destructor TClienteControle.Destroy;

begin

 

inherited;

end;

 

function TClienteControle.ExcluirCliente: Boolean;

begin

Fcontrole.SqqGeral.Close;

FControle.sqqGeral.SQL.Clear;

FControle.sqqGeral.SQL.Add(' DELETE FROM TBL_CLIENTES C ');

FControle.sqqGeral.SQL.Add(' WHERE C.CLI_ID = :vCLI_ID ');

FControle.sqqGeral.ParamByName('vCLI_ID').AsString := Self.Codigo;

 

try

FControle.sqqGeral.ExecSQL;

Result := True;

except

Result := False;

end

end;

 

function TClienteControle.InsereCliente: Boolean;

begin

FControle.sqqGeral.Close;

FControle.sqqGeral.SQL.Clear;

FControle.sqqGeral.SQL.Add(' INSERT INTO TBL_CLIENTES ');

FControle.sqqGeral.SQL.Add(' (CLI_ID, ');

FControle.sqqGeral.SQL.Add(' CLI_NOME, ');

FControle.sqqGeral.SQL.Add(' CLI_CPF_CNPJ, ');

FControle.sqqGeral.SQL.Add(' CLI_RG_INSCR, ');

FControle.sqqGeral.SQL.Add(' CLI_ENDERECO, ');

FControle.sqqGeral.SQL.Add(' CLI_PONTO_REFERENCIA, ');

FControle.sqqGeral.SQL.Add(' CLI_BAIRRO, ');

FControle.sqqGeral.SQL.Add(' CLI_CIDADE, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO, ');

FControle.sqqGeral.SQL.Add(' CLI_CEP, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE1, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE2, ');

FControle.sqqGeral.SQL.Add(' CLI_CELULAR, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_CADASTRO, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_ULTIMA_COMPRA, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_NASCIMENTO, ');

FControle.sqqGeral.SQL.Add(' CLI_SEXO, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO_CIVIL, ');

FControle.sqqGeral.SQL.Add(' CLI_LIMITE_CREDITO, ');

FControle.sqqGeral.SQL.Add(' CLI_EMAIL, ');

FControle.sqqGeral.SQL.Add(' GRP_ID, ');

FControle.sqqGeral.SQL.Add(' ARE_ID, ');

FControle.sqqGeral.SQL.Add(' CLI_STATUS, ');

FControle.sqqGeral.SQL.Add(' CLI_OBSERVA) ');

FControle.sqqGeral.SQL.Add(' VALUES (:vCLI_ID, ');

FControle.sqqGeral.SQL.Add(' :vCLI_NOME, ');

FControle.sqqGeral.SQL.Add(' :vCLI_CPF_CNPJ, ');

FControle.sqqGeral.SQL.Add(' :vCLI_RG_INSCR, ');

FControle.sqqGeral.SQL.Add(' :vCLI_ENDERECO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_PONTO_REFERENCIA, ');

FControle.sqqGeral.SQL.Add(' :vCLI_BAIRRO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_CIDADE, ');

FControle.sqqGeral.SQL.Add(' :vCLI_ESTADO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_CEP, ');

FControle.sqqGeral.SQL.Add(' :vCLI_FONE1, ');

FControle.sqqGeral.SQL.Add(' :vCLI_FONE2, ');

FControle.sqqGeral.SQL.Add(' :vCLI_CELULAR, ');

FControle.sqqGeral.SQL.Add(' :vCLI_DTA_CADASTRO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_DTA_ULTIMA_COMPRA, ');

FControle.sqqGeral.SQL.Add(' :vCLI_DTA_NASCIMENTO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_SEXO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_ESTADO_CIVIL, ');

FControle.sqqGeral.SQL.Add(' :vCLI_LIMITE_CREDITO, ');

FControle.sqqGeral.SQL.Add(' :vCLI_EMAIL, ');

FControle.sqqGeral.SQL.Add(' :vGRP_ID, ');

FControle.sqqGeral.SQL.Add(' :vARE_ID, ');

FControle.sqqGeral.SQL.Add(' :vCLI_STATUS, ');

FControle.sqqGeral.SQL.Add(' :vCLI_OBSERVA) ');

//

FControle.sqqGeral.ParamByName('vCLI_ID').AsString := Self.Codigo;

FControle.sqqGeral.ParamByName('vCLI_NOME').AsString := Self.Nome;

FControle.sqqGeral.ParamByName('vCLI_CPF_CNPJ').AsString := Self.CpfCnpj;

FControle.sqqGeral.ParamByName('vCLI_RG_INSCR').AsString := Self.Identidade;

FControle.sqqGeral.ParamByName('vCLI_ENDERECO').AsString := Self.Endereco;

FControle.sqqGeral.ParamByName('vCLI_PONTO_REFERENCIA').AsString := Self.PontoRef;

FControle.sqqGeral.ParamByName('vCLI_BAIRRO').AsString := Self.Bairro;

FControle.sqqGeral.ParamByName('vCLI_CIDADE').AsString := Self.Cidade;

FControle.sqqGeral.ParamByName('vCLI_ESTADO').AsString := Self.Estado;

FControle.sqqGeral.ParamByName('vCLI_CEP').AsString := Self.Cep;

FControle.sqqGeral.ParamByName('vCLI_FONE1').AsString := Self.Fone1;

FControle.sqqGeral.ParamByName('vCLI_FONE2').AsString := Self.Fone2;

FControle.sqqGeral.ParamByName('vCLI_CELULAR').AsString := Self.Celular;

FControle.sqqGeral.ParamByName('vCLI_DTA_CADASTRO').AsDate := Self.DataCadastro;

FControle.sqqGeral.ParamByName('vCLI_DTA_ULTIMA_COMPRA').AsDate := Self.DataUltimaCompra;

FControle.sqqGeral.ParamByName('vCLI_DTA_NASCIMENTO').AsDate := Self.DataNascimento;

FControle.sqqGeral.ParamByName('vCLI_SEXO').AsString := Self.Sexo;

FControle.sqqGeral.ParamByName('vCLI_ESTADO_CIVIL').AsString := Self.EstadoCivil;

FControle.sqqGeral.ParamByName('vCLI_LIMITE_CREDITO').AsCurrency := Self.LimiteDeCredito;

FControle.sqqGeral.ParamByName('vCLI_EMAIL').AsString := Self.Email;

FControle.sqqGeral.ParamByName('vGRP_ID').AsString := Self.GrupoCliente;

FControle.sqqGeral.ParamByName('vARE_ID').AsString := Self.Area;

FControle.sqqGeral.ParamByName('vCLI_STATUS').AsString := Self.Status;

FControle.sqqGeral.ParamByName('vCLI_OBSERVA').AsString := Self.Observacoes;

//

try

FControle.sqqGeral.ExecSQL;

Result := True;

except

Result := False;

end;

end;

 

function TClienteControle.PesquisaCliente(pCodigo: string): TClienteControle;

begin

FControle.sqqGeral.Close;

FControle.sqqGeral.SQL.Clear;

FControle.sqqGeral.SQL.Add(' SELECT CLI_ID, ');

FControle.sqqGeral.SQL.Add(' CLI_NOME, ');

FControle.sqqGeral.SQL.Add(' CLI_CPF_CNPJ, ');

FControle.sqqGeral.SQL.Add(' CLI_RG_INSCR, ');

FControle.sqqGeral.SQL.Add(' CLI_ENDERECO, ');

FControle.sqqGeral.SQL.Add(' CLI_PONTO_REFERENCIA, ');

FControle.sqqGeral.SQL.Add(' CLI_BAIRRO, ');

FControle.sqqGeral.SQL.Add(' CLI_CIDADE, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO, ');

FControle.sqqGeral.SQL.Add(' CLI_CEP, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE1, ');

FControle.sqqGeral.SQL.Add(' CLI_FONE2, ');

FControle.sqqGeral.SQL.Add(' CLI_CELULAR, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_CADASTRO, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_ULTIMA_COMPRA, ');

FControle.sqqGeral.SQL.Add(' CLI_DTA_NASCIMENTO, ');

FControle.sqqGeral.SQL.Add(' CLI_SEXO, ');

FControle.sqqGeral.SQL.Add(' CLI_ESTADO_CIVIL, ');

FControle.sqqGeral.SQL.Add(' CLI_LIMITE_CREDITO, ');

FControle.sqqGeral.SQL.Add(' CLI_EMAIL, ');

FControle.sqqGeral.SQL.Add(' GRP_ID, ');

FControle.sqqGeral.SQL.Add(' ARE_ID, ');

FControle.sqqGeral.SQL.Add(' CLI_STATUS, ');

FControle.sqqGeral.SQL.Add(' CLI_OBSERVA ');

FControle.sqqGeral.SQL.Add(' FROM TBL_CLIENTES ');

FControle.sqqGeral.SQL.Add(' WHERE CLI_ID = '+ pCodigo );

FControle.sqqGeral.Open;

 

if FControle.sqqGeral.IsEmpty then

begin

Self.Codigo := '';

end

else

begin

Self.Codigo := FControle.sqqGeral.ParamByName('vCLI_ID').AsString ;

Self.Nome := FControle.sqqGeral.ParamByName('vCLI_NOME').AsString ;

Self.CpfCnpj := FControle.sqqGeral.ParamByName('vCLI_CPF_CNPJ').AsString ;

Self.Identidade := FControle.sqqGeral.ParamByName('vCLI_RG_INSCR').AsString ;

Self.Endereco := FControle.sqqGeral.ParamByName('vCLI_ENDERECO').AsString ;

Self.PontoRef := FControle.sqqGeral.ParamByName('vCLI_PONTO_REFERENCIA').AsString ;

Self.Bairro := FControle.sqqGeral.ParamByName('vCLI_BAIRRO').AsString ;

Self.Cidade := FControle.sqqGeral.ParamByName('vCLI_CIDADE').AsString ;

Self.Estado := FControle.sqqGeral.ParamByName('vCLI_ESTADO').AsString ;

Self.Cep := FControle.sqqGeral.ParamByName('vCLI_CEP').AsString ;

Self.Fone1 := FControle.sqqGeral.ParamByName('vCLI_FONE1').AsString ;

Self.Fone2 := FControle.sqqGeral.ParamByName('vCLI_FONE2').AsString ;

Self.Celular := FControle.sqqGeral.ParamByName('vCLI_CELULAR').AsString ;

Self.DataCadastro := FControle.sqqGeral.ParamByName('vCLI_DTA_CADASTRO').AsDate ;

Self.DataUltimaCompra := FControle.sqqGeral.ParamByName('vCLI_DTA_ULTIMA_COMPRA').AsDate ;

Self.DataNascimento := FControle.sqqGeral.ParamByName('vCLI_DTA_NASCIMENTO').AsDate ;

Self.Sexo := FControle.sqqGeral.ParamByName('vCLI_SEXO').AsString ;

Self.EstadoCivil := FControle.sqqGeral.ParamByName('vCLI_ESTADO_CIVIL').AsString ;

Self.LimiteDeCredito := FControle.sqqGeral.ParamByName('vCLI_LIMITE_CREDITO').AsCurrency ;

Self.Email := FControle.sqqGeral.ParamByName('vCLI_EMAIL').AsString ;

Self.GrupoCliente := FControle.sqqGeral.ParamByName('vGRP_ID').AsString ;

Self.Area := FControle.sqqGeral.ParamByName('vARE_ID').AsString ;

Self.Status := FControle.sqqGeral.ParamByName('vCLI_STATUS').AsString ;

Self.Observacoes := FControle.sqqGeral.ParamByName('vCLI_OBSERVA').AsString ;

end;

end;

end.

 

Lembrando que todo o código acima foi criando usando o Embarcadero® Delphi® 2010. Um grande abraço e até o próximo post.