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.