Problema com Chave estrangeira no delphi
12/01/2013
0
no formulário de Agendar a consulta tenho que ter um campo do médico e outro do paciente que são de outra tabela do meu banco e são chaves estrangeiras, bom o que eu preciso é saber como fazer para colocar dois campos um para colocar cod_paciente e outro para o nome do paciente, bom a ideia é que quando eu colocar o cod_paciente ele apareça automaticamente o nome do paciente, caso eu não saiba qual o cod_paciente eu pressionando enter ele vá direto para uma consulta do paciente.
se alguém poder me ajudar desde já agradeço muito!
Francielio Medeiros
Posts
14/01/2013
Eliel Martins
O que pode ser feito neste caso, é no evento OnExit do campo onde você digita o código paciente, você pode executar um comando SQL para trazer o nome do paciente. Outra forma é você colocar uma Query e passar o parâmetro para a mesma e pegar o retorno e preencher o campo. Tem várias formas de fazer. Mas basicamente você pode fazer isso, quando você sair do campo e estiver em branco você pode chamar a tela de consulta do paciente, pode utilizar essa verificação ou colocar uma tecla de atalho para consulta caso você utilize.
Espero ter ajudado, caso não consegui lhe ajudar, solicito que adicione maiores informações.
Atenciosamente,
Eliel G. Martins
16/01/2013
Francielio Medeiros
o que estou precisando basicamente é isso aqui:
Tenho duas tabelas (tabela paciente e tabela agendaconsulta)
Na Tabela paciente tenho os seguintes campos:
ID_PACIENTE – Primary key
PACIENTE - varchar (30)
Na Tabela agendaconsulta tenho os seguintes Campos:
ID_CONSULTA – Primary key
ID_PACIENTE – foreign key
PACIENTE – varchar (30)
DATA_CONSULTA - date
HORA_CONSULTA - time
VALOR - numeric
TIPO_CONSULTA – varchar (40)
Na minha aplicação tenho dois formularios um cadastro de paciente e outro agenda consultas,
Segue link da imagem do Formulário http://imageshack.us/photo/my-images/705/123byv.png/
Prondo como na imagem a cima eu gostaria que quando eu chegar em cima do edit2 se eu colocar o Codigo do paciente ele preencha o nome paciente tambem no campo edit3, se eu não souber o codigo do paciente ao precionar enter com o campo vazio ele vá para a consulta de paciente, para poder selecionar o paciente ao fechar a consulta ele mostre no formulario de agendamento de consultas o codigo e paciente selecionado na tela de consulta paciente.
Essa situação está me dando muita dor de cabeça, se alguém poder me ajudar desde já Muito Obrigado....
16/01/2013
Douglas
Selecione o seu DbEdit2 que é o código do paciente.
E no evento OnKeyPress que fica no Object Inspector na guia events,
dê um duplo clique.
E insira o seguinte código:
if key = #13 then begin SQLDataSet1.Close; SQLDataSet1.CommandText := 'SELECT * FROM CLIENTE WHERE IDPACIENTE = :IDPACIENTE'; SQLDataSet1.ParamByName('IDPACIENTE').AsInteger := StrToInt(DBEdit1.Text); SQLDataSet1.Open; DBEdit2.Text := SQLDataSet1.FieldByName('NomePaciente').AsString; end;
Ocorre o seguinte. Há um filtro no SQL com a passagem do parâmetro IDPACIENTE.
e quando abro o SQLDataSet pego o resultado da consulta e jogo para o DBEdit2.text o nome do paciente.
Obs: Neste caso estou utilizando o objeto SQLDataSet1. No seu, mude para o que esta utilizando.
(key = #13 - passa de edit para edit usando a tecla enter)
Espero te ajudado.
17/01/2013
Francielio Medeiros
desde já Muito Obrigado!
17/01/2013
Bruno Leandro
17/01/2013
Douglas
seguinte se pode efetuar um SELECT de pesquisa na sua tabela de consulta
populando os dados no DBGRID, como o nosso amigo Bruno citou.
o código de pesquisa ficaria desta forma
SQLDataSet1.Close; SQLDataSet1.CommandText := 'SELECT * FROM CLIENTE WHERE IDPACIENTE LIKE ' +QuotedStr('%'+DBEdit1.Text+'%'); SQLDataSet1.Open;
Quando você teclar enter no momento que o dbedit estiver vazio,
ele vai trazer todo o resultado da tabela de consulta.
17/01/2013
Francielio Medeiros
Imagem do formulário de Agendamento de consulta - http://imageshack.us/photo/my-images/543/formulariodeagendamento.png/
Imagem do formulário de Pesquisa Paciente - http://imageshack.us/photo/my-images/823/pesqui.png/
#código
procedure TF_Cad_Paciente.DBEdit_ID_CIDADEKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
begin
DM_Principal.SQLD_Cidade.Close;
DM_Principal.SQLD_Cidade.CommandText := 'SELECT * FROM CIDADE WHERE ID_CIDADE = :ID_CIDADE';
DM_Principal.SQLD_Cidade.ParamByName('ID_CIDADE').AsInteger := StrToInt(DBEdit_ID_CIDADE.Text);
DM_Principal.SQLD_Cidade.Open;
DBEdit_CIDADE.Text := DM_Principal.SQLD_Cidade.FieldByName('NOME_CIDADE').AsString;
DBEdit_UF.Text := DM_Principal.SQLD_Cidade.FieldByName('UF_CIDADE').AsString;
end;
end;
17/01/2013
Francielio Medeiros
imagem do formulário de agendamento de consulta - http://imageshack.us/photo/my-images/543/formulariodeagendamento.png/
imagem do formulário de pesquisa paciente - http://imageshack.us/photo/my-images/823/pesqui.png/
#codigo
procedure tf_cad_paciente.dbedit_id_cidadekeypress(sender: tobject;
var key: char);
begin
if key = #13 then
begin
dm_principal.sqld_cidade.close;
dm_principal.sqld_cidade.commandtext := 'select * from cidade where id_cidade = :id_cidade';
dm_principal.sqld_cidade.parambyname('id_cidade').asinteger := strtoint(dbedit_id_cidade.text);
dm_principal.sqld_cidade.open;
dbedit_cidade.text := dm_principal.sqld_cidade.fieldbyname('nome_cidade').asstring;
dbedit_uf.text := dm_principal.sqld_cidade.fieldbyname('uf_cidade').asstring;
end;
end;
17/01/2013
Douglas
ae ficaria desta forma.
como o código abaixo:
begin if key = #13 then begin SQLDataSet1.Close; SQLDataSet1.CommandText := 'SELECT * FROM CLIENTE WHERE IDPACIENTE LIKE ' +QuotedStr('%'+(DBEdit1.Text)+'%'); SQLDataSet1.Open; if (DBEdit1.Text <> EmptyStr) then DBEdit2.Text := SQLDataSet1.FieldByName('NOMEPACIENTE').AsString else begin Application.CreateForm(TForm2, Form2); try form2.showmodal; finally freeandnil(form2); end; end; end; end;
Espero que seja isto.
Boa Sorte.
OBS: O layout das telas ficaram show.
19/01/2013
Francielio Medeiros
link do video https://www.youtube.com/watch?v=3WbYwSSD2dw
#Código
unit U_Cad_Paciente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Buttons, DB, Mask, DBCtrls, FMTBcd, SqlExpr,
Provider, DBClient;
type
TF_Cad_Paciente = class(TForm)
Panel2: TPanel;
btn_editar: TBitBtn;
btn_cancelar: TBitBtn;
btn_excluir: TBitBtn;
btn_gravar: TBitBtn;
btn_pesquisar: TBitBtn;
btn_sair: TBitBtn;
btn_novo: TBitBtn;
Panel1: TPanel;
GroupBox1: TGroupBox;
Label1: TLabel;
DBEdit_COD: TDBEdit;
DTS_Paciente: TDataSource;
Label2: TLabel;
DBEdit_NOME: TDBEdit;
Label3: TLabel;
DBEdit_END: TDBEdit;
Label4: TLabel;
DBEdit_NUMERO: TDBEdit;
Label8: TLabel;
DBEdit_EMAIL: TDBEdit;
Label9: TLabel;
DBEdit_BAIRRO: TDBEdit;
Label10: TLabel;
DBEdit_CIDADE: TDBEdit;
Label12: TLabel;
DBEdit_FONE1: TDBEdit;
Label13: TLabel;
DBEdit_FONE2: TDBEdit;
Label14: TLabel;
DBEdit_CPF: TDBEdit;
DBEdit_UF: TDBEdit;
Label16: TLabel;
DBEdit_DATACAD: TDBEdit;
DBRadioGroup_paciente: TDBRadioGroup;
SP_GEN_PACIENTE: TSQLStoredProc;
DBEdit_ID_CIDADE: TDBEdit;
Label5: TLabel;
DBEdit_NAC: TDBEdit;
SQLD_Paciente: TSQLDataSet;
SQLD_PacienteTEL1: TStringField;
SQLD_PacienteTEL2: TStringField;
SQLD_PacienteDATA_CADASTRO: TDateField;
SQLD_PacienteID_PACIENTE: TIntegerField;
SQLD_PacienteNOME_PACIENTE: TStringField;
SQLD_PacienteENDERECO: TStringField;
SQLD_PacienteNUMERO: TLargeintField;
SQLD_PacienteBAIRRO: TStringField;
SQLD_PacienteID_CIDADE: TIntegerField;
SQLD_PacienteNOME_CIDADE: TStringField;
SQLD_PacienteUF_CIDADE: TStringField;
SQLD_PacienteDATA_NACIMENTO: TDateField;
SQLD_PacienteSEXO: TStringField;
SQLD_PacienteCPF: TStringField;
SQLD_PacienteEMAIL: TStringField;
CDS_Paciente: TClientDataSet;
CDS_PacienteTEL1: TStringField;
CDS_PacienteTEL2: TStringField;
CDS_PacienteDATA_CADASTRO: TDateField;
CDS_PacienteID_PACIENTE: TIntegerField;
CDS_PacienteNOME_PACIENTE: TStringField;
CDS_PacienteENDERECO: TStringField;
CDS_PacienteNUMERO: TLargeintField;
CDS_PacienteBAIRRO: TStringField;
CDS_PacienteID_CIDADE: TIntegerField;
CDS_PacienteNOME_CIDADE: TStringField;
CDS_PacienteUF_CIDADE: TStringField;
CDS_PacienteDATA_NACIMENTO: TDateField;
CDS_PacienteSEXO: TStringField;
CDS_PacienteCPF: TStringField;
CDS_PacienteEMAIL: TStringField;
DSP_Paciente: TDataSetProvider;
procedure btn_sairClick(Sender: TObject);
procedure btn_novoClick(Sender: TObject);
procedure ATIVADBEDIT;
procedure DESATIVADBEDIT;
procedure ATIVABTN;
procedure DESATIVABTN;
procedure DBEdit_DATACADKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_NOMEKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_ENDKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_BAIRROKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_CIDADEKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_FONE1KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_FONE2KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_NUMEROKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_UFKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit11KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_CPFKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_EMAILKeyPress(Sender: TObject; var Key: Char);
procedure btn_gravarClick(Sender: TObject);
procedure btn_editarClick(Sender: TObject);
procedure btn_cancelarClick(Sender: TObject);
procedure btn_excluirClick(Sender: TObject);
procedure btn_pesquisarClick(Sender: TObject);
procedure DBEdit_ID_CIDADEKeyPress(Sender: TObject; var Key: Char);
procedure DBEdit_CPFExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
F_Cad_Paciente: TF_Cad_Paciente;
implementation
uses U_DMODULO, U_Pesq_Paciente, U_Pesq_Cidades;
{$R *.dfm}
// FUNÇÃO PARA VALIDAR CPF //
function Cpf(CPF_Text: string): boolean;
var n1,n2,n3,n4,n5,n6,n7,n8,n9: integer;
d1,d2: integer;
digitado, calculado: string;
begin
n1:=StrToInt(CPF_Text[1]);
n2:=StrToInt(CPF_Text[2]);
n3:=StrToInt(CPF_Text[3]);
n4:=StrToInt(CPF_Text[5]);
n5:=StrToInt(CPF_Text[6]);
n6:=StrToInt(CPF_Text[7]);
n7:=StrToInt(CPF_Text[9]);
n8:=StrToInt(CPF_Text[10]);
n9:=StrToInt(CPF_Text[11]);
d1:=n9*2+n8*3+n7*4+n6*5+n5*6+n4*7+n3*8+n2*9+n1*10;
d1:=11-(d1 mod 11);
if d1>=10 then d1:=0;
d2:=d1*2+n9*3+n8*4+n7*5+n6*6+n5*7+n4*8+n3*9+n2*10+n1*11;
d2:=11-(d2 mod 11);
if d2>=10 then
d2:=0;
calculado:=inttostr(d1)+inttostr(d2);
digitado:=CPF_Text[13]+CPF_Text[14];
if calculado=digitado then
Cpf:=true
else
Cpf:=false;
end;
procedure TF_Cad_Paciente.ATIVADBEDIT;
begin // ATIVANDO OS DBEDITS //
DBEdit_DATACAD.enabled := True;
DBEdit_NOME.enabled := True;
DBEdit_END.enabled := True;
DBEdit_NUMERO.enabled := True;
DBEdit_EMAIL.enabled := True;
DBEdit_BAIRRO.enabled := True;
DBEdit_FONE1.enabled := True;
DBEdit_FONE2.enabled := True;
DBEdit_CPF.enabled := True;
DBEdit_ID_CIDADE.enabled := True;
DBEdit_NAC.enabled := True;
DBRadioGroup_paciente.Enabled := True;
end;
procedure TF_Cad_Paciente.DESATIVADBEDIT;
begin // DESATIVANDO OS DBEDITS //
DBEdit_DATACAD.enabled := False;
DBEdit_NOME.enabled := False;
DBEdit_END.enabled := False;
DBEdit_NUMERO.enabled := False;
DBEdit_EMAIL.enabled := False;
DBEdit_BAIRRO.enabled := False;
DBEdit_FONE1.enabled := False;
DBEdit_FONE2.enabled := False;
DBEdit_CPF.enabled := False;
DBEdit_ID_CIDADE.enabled := False;
DBEdit_NAC.enabled := False;
DBRadioGroup_paciente.Enabled := False;
end;
procedure TF_Cad_Paciente.DBEdit11KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_BAIRROKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_CIDADEKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_CPFExit(Sender: TObject);
begin
If DBEdit_CPF.Text<>'' Then
If Cpf(DBEdit_CPF.Text)=False Then
Begin
MessageDlg('CPF informado é incorreto!',mtError, [mbOk],0);
DBEdit_CPF.SetFocus;
End;
end;
procedure TF_Cad_Paciente.DBEdit_CPFKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_DATACADKeyPress(Sender: TObject;
var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_EMAILKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
btn_gravar.SetFocus;
end;
end;
procedure TF_Cad_Paciente.DBEdit_ENDKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_FONE1KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_FONE2KeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_ID_CIDADEKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
begin
DM_Principal.SQLD_Cidade.Close;
DM_Principal.SQLD_Cidade.CommandText := 'SELECT * FROM CIDADE WHERE ID_CIDADE = :ID_CIDADE';
DM_Principal.SQLD_Cidade.ParamByName('ID_CIDADE').AsInteger := StrToInt(DBEdit_ID_CIDADE.Text);
DM_Principal.SQLD_Cidade.Open;
DBEdit_CIDADE.Text := DM_Principal.SQLD_Cidade.FieldByName('NOME_CIDADE').AsString;
DBEdit_UF.Text := DM_Principal.SQLD_Cidade.FieldByName('UF_CIDADE').AsString;
end;
end;
procedure TF_Cad_Paciente.DBEdit_NOMEKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_NUMEROKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DBEdit_UFKeyPress(Sender: TObject; var Key: Char);
begin
If Key = #13 Then // Comando para passar para outro edit com a tecla enter//
Begin
SelectNext(Sender as tWinControl, True, True);
Key := #0;
end;
end;
procedure TF_Cad_Paciente.DESATIVABTN;
begin
btn_novo.enabled := False;
btn_editar.enabled := False;
btn_cancelar.enabled := True;
btn_gravar.enabled := True;
btn_excluir.enabled := False;
btn_sair.enabled := False;
btn_pesquisar.enabled := False;
end;
procedure TF_Cad_Paciente.ATIVABTN;
begin
btn_novo.enabled := True;
btn_editar.enabled := True;
btn_cancelar.enabled := False;
btn_gravar.enabled := False;
btn_excluir.enabled := True;
btn_sair.enabled := True;
btn_pesquisar.enabled := True;
end;
procedure TF_Cad_Paciente.btn_cancelarClick(Sender: TObject);
begin
if DTS_Paciente.DataSet.State in [dsBrowse, dsEdit, dsInsert] then
begin
CDS_Paciente.Cancel;
CDS_Paciente.ApplyUpdates(-1);
CDS_Paciente.Open;
CDS_Paciente.close;
ativabtn;
end
else
ShowMessage('Atenção: Favor Executar uma Operação.');
end;
procedure TF_Cad_Paciente.btn_editarClick(Sender: TObject);
begin
CDS_Paciente.Edit;
Desativabtn;
ativadbedit;
end;
procedure TF_Cad_Paciente.btn_excluirClick(Sender: TObject);
begin
if DTS_Paciente.DataSet.State in [dsBrowse, dsEdit] then
begin
CDS_Paciente.Delete;
CDS_Paciente.ApplyUpdates(0);
CDS_Paciente.close;
end
else
ShowMessage('Atenção: Favor Localizar o Registro a Ser Excluido.');
end;
procedure TF_Cad_Paciente.btn_gravarClick(Sender: TObject);
begin
if CDS_Paciente.State in [dsBrowse, dsEdit, dsInsert] then
begin
CDS_Paciente.Post;
CDS_Paciente.ApplyUpdates(0);
CDS_Paciente.close;
ATIVABTN;
end
else
ShowMessage('Atenção: Favor Executar uma Função.');
end;
procedure TF_Cad_Paciente.btn_novoClick(Sender: TObject);
var
vID_PACIENTE: integer;
begin
with SP_GEN_PACIENTE do
begin
Prepared := True;
ExecProc;
Prepared := False;
vID_PACIENTE := ParamByName('ID').Value;
close;
end;
CDS_Paciente.Open;
CDS_Paciente.Append;
CDS_Paciente.FieldByName('ID_PACIENTE').AsInteger := vID_PACIENTE;
Desativabtn;
ativadbedit;
//DBEdit_carregarfoto.text := ('C:\SYSPROF\Imagens\FOTO.jpg'); //
DBEdit_DATACAD.SetFocus;
end;
procedure TF_Cad_Paciente.btn_pesquisarClick(Sender: TObject);
begin
F_Pesq_Paciente := TF_Pesq_Paciente.create(Self);
F_Pesq_Paciente.ShowModal; // chamar o formulario de pesquisar paciente //
F_Pesq_Paciente.Release;
F_Pesq_Paciente.free;
end;
procedure TF_Cad_Paciente.btn_sairClick(Sender: TObject);
begin
CLOSE;
end;
end.
19/01/2013
Francielio Medeiros
Vídeo http://www.youtube.com/watch?v=mkEs5hAcNho
19/01/2013
Douglas
O último código postado você consegue,
ir para uma outra tela, caso o código esteja vazio.
begin if key = #13 then begin SQLDataSet1.Close; SQLDataSet1.CommandText := 'SELECT * FROM CLIENTE WHERE IDPACIENTE LIKE ' +QuotedStr('%'+(DBEdit1.Text)+'%'); SQLDataSet1.Open; if (DBEdit1.Text <> EmptyStr) then DBEdit2.Text := SQLDataSet1.FieldByName('NOMEPACIENTE').AsString else begin Application.CreateForm(TForm2, Form2); try form2.showmodal; finally freeandnil(form2); end; end; end; end;
Na cláusula do IF se verifica se o dbedit do código esta vazio,
caso esteja se parte para o próximo formulário passando os parâmetros dele.
Ex:
Application.CreateForm
19/01/2013
Douglas
O último código postado por mim,
você consegue chamar o outro formulário.
Vamos a análise do IF.
begin if key = #13 then begin SQLDataSet1.Close; SQLDataSet1.CommandText := 'SELECT * FROM CLIENTE WHERE IDPACIENTE LIKE ' +QuotedStr('%'+(DBEdit1.Text)+'%'); SQLDataSet1.Open; if (DBEdit1.Text <> EmptyStr) then DBEdit2.Text := SQLDataSet1.FieldByName('NOMEPACIENTE').AsString else begin Application.CreateForm(TForm2, Form2); try form2.showmodal; finally freeandnil(form2); end; end; end; end;
Na cláusula do "IF" verifica se o dbedit do código esta vazio,
se estiver chama o seu formulário de consulta passando os parâmetros dele.
Como descrito anteriormente.
Ex:
Application.CreateForm(TFrmConsulta, FrmConsulta);
No seu form de consulta após achar o paciente no evento OnClick do botão de pesquisar, tu vai setar
o resultado da pesquisa para o seu formulário principal passando o código e o nome da cidade.
Ex:
FrmPrincipal.DbEditIDCidade.text := SQLDataSet1.FieldByName('IDCidade').AsInteger; FrmPrincipal.DbEditNomeCidade.text := SQLDataSet1.FieldByName('NomeCidade').AsString;
Qualquer dúvida me envie um e-mail que acompanho passa-a-passo contigo via conexão remota.
douglas_claudio@hotmail.com
Espero que a explicação acima tenha ficado clara.
Clique aqui para fazer login e interagir na Comunidade :)