Pesquisa com ClietDataSet
Olá sou iniciante em Delphi, gostaria de criar uma pesquisa usando ClientDataSet, que buscasse o nome do cliente na tabela cliente, caso não encontre o nome ao pressionar Enter, o sistema abra o formulário de cadastro de clientes, sei que é possível fazer já isso em alguns sistemas. Alguém pode me ajudar? No caso estou usando Delphi 2010 + Firebird 2.5 e o drive da DBexpress.
Eleandro Mori
Curtidas 0
Respostas
Deivison Melo
24/05/2013
No botão pesquisar digitar:
var
strSQL: string;
TextoPesquisa: string;
begin
TextoPesquisa := Trim(edtConsultaCEP.Text);
if Trim(TextoPesquisa) = '' then
begin
ShowMessage('Digite um termo a ser pesquisado!');
exit;
end;
strSQL := 'select NOME_LOCAL, SIGLA_UF, CEP_INICIAL, CEP_FINAL from CEP where NOME_LOCAL like :NOME_LOCAL order by NOME_LOCAL';
ClientDataSet1.Close;
ClientDataSet1.CommandText := strSQL;
ClientDataSet1.Params.ParamByName('NOME_LOCAL').AsString := '%' + edtConsultaCEP.Text + '%';
ClientDataSet1.Open;
lblRespRegistros.Caption := IntToStr(ClientDataSet1.RecordCount);
if ClientDataSet1.Eof then
begin
ShowMessage('Nenhum registro encontrado!');
if Application.MessageBox('Deseja incluir novo CEP?', 'Confirmação',
MB_OKCANCEL) = IDOK then
begin
frmCadastro := TfrmCadastro.Create(Self);
frmCadastro.ShowModal;
FreeAndNil(frmCadastro);
end
else
begin
frmPrincipal.Show;
end;
end;
var
strSQL: string;
TextoPesquisa: string;
begin
TextoPesquisa := Trim(edtConsultaCEP.Text);
if Trim(TextoPesquisa) = '' then
begin
ShowMessage('Digite um termo a ser pesquisado!');
exit;
end;
strSQL := 'select NOME_LOCAL, SIGLA_UF, CEP_INICIAL, CEP_FINAL from CEP where NOME_LOCAL like :NOME_LOCAL order by NOME_LOCAL';
ClientDataSet1.Close;
ClientDataSet1.CommandText := strSQL;
ClientDataSet1.Params.ParamByName('NOME_LOCAL').AsString := '%' + edtConsultaCEP.Text + '%';
ClientDataSet1.Open;
lblRespRegistros.Caption := IntToStr(ClientDataSet1.RecordCount);
if ClientDataSet1.Eof then
begin
ShowMessage('Nenhum registro encontrado!');
if Application.MessageBox('Deseja incluir novo CEP?', 'Confirmação',
MB_OKCANCEL) = IDOK then
begin
frmCadastro := TfrmCadastro.Create(Self);
frmCadastro.ShowModal;
FreeAndNil(frmCadastro);
end
else
begin
frmPrincipal.Show;
end;
end;
GOSTEI 0
Marco Salles
24/05/2013
para utilizar o commandText do clientdataset tem que Configurar o poAllowCommand da
propriedade options do datasetprovider para True
Porém eu Prefiro a abordagem abaixo
Caso seu sql seje fixo , vc pode passar somente o parâmetro através do clientdataset
dar um close , passa o parâmetro e dar um open a pesquisa já é realizada
propriedade options do datasetprovider para True
Porém eu Prefiro a abordagem abaixo
Caso seu sql seje fixo , vc pode passar somente o parâmetro através do clientdataset
dar um close , passa o parâmetro e dar um open a pesquisa já é realizada
GOSTEI 0