Fórum Criar procedures ou funções #405057
15/07/2011
0
Dentro do mesmo formulário eu criei uma procedure. Segue como estou fazendo:
....
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_consulta_MG: Tfrm_consulta_MG;
procedure Seleciona_MG;
implementation
uses U_DM_MG;
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_consulta_MG: Tfrm_consulta_MG;
procedure Seleciona_MG;
implementation
uses U_DM_MG, U_Funcoes;
{$R *.dfm}
procedure Tfrm_consulta_MG.nomeChange(Sender: TObject);
begin
Seleciona_MG();
End;
// AKI Acontece o erro -> Undeclared idetifier CDS_Consulta_MG.
procedure Seleciona_MG;
Begin
CDS_Consulta_MG.Active:=False;
QR_Consulta_MG.Close;
QR_Consulta_MG.SQL.Clear;
QR_Consulta_MG.SQL.Add('SELECT e.ID, e.IDPACIENTE, e.DATA, e.HORA, e.NUMEROEXAME, e.ID_INTERNO, e.LAUDO , p.ID, p.NOME');
QR_Consulta_MG.SQL.Add('FROM EXAMES e, PACIENTES p');
QR_Consulta_MG.SQL.Add('WHERE e.IDPACIENTE = p.ID');
QR_Consulta_MG.SQL.Add('AND UPPER(p.nome) LIKE '''+'' + nome.Text +'%''');
QR_Consulta_MG.SQL.Add('AND data BETWEEN :data_ini AND :data_fim');
QR_Consulta_MG.SQL.Add('ORDER BY e.DATA, e.HORA, p.nome');
QR_Consulta_MG.Params.ParamByName('data_ini').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_ini.Date);
QR_Consulta_MG.Params.ParamByName('data_fim').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_fim.Date);
QR_Consulta_MG.Open;
CDS_Consulta_MG.Active:=True;
End;
Se alguém puder me ajudar eu agradeço
Marcos Barbosa
Curtir tópico
+ 0Posts
15/07/2011
Alan Souza
procedure Tfrm_Consulta_MG.Seleciona_MG;
parece que o erro está no escopo, pq ele não consegue acessar o CDS_Consulta_MG.
Gostei + 0
15/07/2011
Emerson Nascimento
procedure TDM_MG.Seleciona_MG;
begin
CDS_Consulta_MG.Close;
CDS_Consulta_MG.CommandText :=
'SELECT e.ID, e.IDPACIENTE, e.DATA, e.HORA, e.NUMEROEXAME, e.ID_INTERNO, e.LAUDO , p.ID, p.NOME'+
'FROM EXAMES e, PACIENTES p'+
'WHERE e.IDPACIENTE = p.ID'+
' AND UPPER(p.nome) LIKE '+QuotedStr(nome.Text +'%')+
' AND data BETWEEN :data_ini AND :data_fim'+
' ORDER BY e.DATA, e.HORA, p.nome';
CDS_Consulta_MG.Params.ParamByName('data_ini').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_ini.Date);
CDS_Consulta_MG.Params.ParamByName('data_fim').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_fim.Date);
CDS_Consulta_MG.Open;
end;
você precisará instanciar o componente CDS_Consulta_MG no seu DM ou na própria procedure, em tempo de projeto.
mas não entendi qual o resultado disso... será exibido numa grade?
se você explicar o que vai fazer com o resultado desta pesquisa poderemos te dar uma resposta mais objetiva.
de qualquer forma achei estranho seu fonte. deveria ser algo como (note que não há repetições de implementation ou das declarações private, public...):
....
private
{ Private declarations }
public
{ Public declarations }
end;
var
frm_consulta_MG: Tfrm_consulta_MG;
procedure Seleciona_MG;
implementation
uses U_DM_MG, U_Funcoes;
{$R *.dfm}
procedure Tfrm_consulta_MG.nomeChange(Sender: TObject);
begin
Seleciona_MG();
End;
// AKI Acontece o erro -> Undeclared idetifier CDS_Consulta_MG.
procedure Seleciona_MG;
Begin
CDS_Consulta_MG.Active:=False;
QR_Consulta_MG.Close;
QR_Consulta_MG.SQL.Clear;
QR_Consulta_MG.SQL.Add('SELECT e.ID, e.IDPACIENTE, e.DATA, e.HORA, e.NUMEROEXAME, e.ID_INTERNO, e.LAUDO , p.ID, p.NOME');
QR_Consulta_MG.SQL.Add('FROM EXAMES e, PACIENTES p');
QR_Consulta_MG.SQL.Add('WHERE e.IDPACIENTE = p.ID');
QR_Consulta_MG.SQL.Add('AND UPPER(p.nome) LIKE '''+'' + nome.Text +'%''');
QR_Consulta_MG.SQL.Add('AND data BETWEEN :data_ini AND :data_fim');
QR_Consulta_MG.SQL.Add('ORDER BY e.DATA, e.HORA, p.nome');
QR_Consulta_MG.Params.ParamByName('data_ini').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_ini.Date);
QR_Consulta_MG.Params.ParamByName('data_fim').AsString := FormatDateTime('MM/DD/YYYY', dtp_Data_fim.Date);
QR_Consulta_MG.Open;
CDS_Consulta_MG.Active:=True;
End;
Gostei + 0
15/07/2011
Marcos Barbosa
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)