Fórum Procedure Access / Firebird #53501
21/10/2005
0
Em um banco Access estou usando essa consulta: ´spApEnt´
SELECT OS, Codigo, Aparelho, Marca, Modelo, Numero, Entrada, Orcamento, Prometido, Saida, DtaExe
From tlbOrdemServ
GROUP BY OS, Codigo, Aparelho, Marca, Modelo, Numero, Entrada, Orcamento, Prometido, Saida, DtaExe
HAVING (((tlbOrdemServ.Aparelho) Like [Aparelho]) AND
((tlbOrdemServ.Marca) Like [Marca]) AND ((tlbOrdemServ.Modelo) Like [Modelo]) AND
((tlbOrdemServ.Entrada) Between [Inicio] And [Final]))
ORDER BY tlbOrdemServ.Entrada;
======================================================================================
E estou chamando assim:
begin
spApEntrada.Active := false;
spApEntrada.Parameters.Clear;
spApEntrada.ProcedureName := ´spApaEnt´;
spApEntrada.Parameters.Clear;
spApEntrada.Parameters.CreateParameter(´Aparelho´, ftString, pdInput, 30, 0);
spApEntrada.Parameters.CreateParameter(´Marca´, ftString, pdInput, 30, 0);
spApEntrada.Parameters.CreateParameter(´Modelo´, ftString, pdInput, 30, 0);
spApentrada.Parameters.CreateParameter(´Inicio´, ftDateTime, pdInput, 8, 0);
spApentrada.Parameters.CreateParameter(´Final´, ftDateTime, pdInput, 8, 0);
spApEntrada.Parameters.ParamByName(´Aparelho´).Value := Edit1.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Marca´).Value := Edit2.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Modelo´).Value := Edit3.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Inicio´).Value := mskInicio.Text;
spApEntrada.Parameters.ParamByName(´Final´).Value := mskFinal.Text;
spApEntrada.Open;
end;
====================================================================================
Como fazer um procedure no Firebird com esses parâmetros?
Desde já brigadão a quem ajudar-me.
SELECT OS, Codigo, Aparelho, Marca, Modelo, Numero, Entrada, Orcamento, Prometido, Saida, DtaExe
From tlbOrdemServ
GROUP BY OS, Codigo, Aparelho, Marca, Modelo, Numero, Entrada, Orcamento, Prometido, Saida, DtaExe
HAVING (((tlbOrdemServ.Aparelho) Like [Aparelho]) AND
((tlbOrdemServ.Marca) Like [Marca]) AND ((tlbOrdemServ.Modelo) Like [Modelo]) AND
((tlbOrdemServ.Entrada) Between [Inicio] And [Final]))
ORDER BY tlbOrdemServ.Entrada;
======================================================================================
E estou chamando assim:
begin
spApEntrada.Active := false;
spApEntrada.Parameters.Clear;
spApEntrada.ProcedureName := ´spApaEnt´;
spApEntrada.Parameters.Clear;
spApEntrada.Parameters.CreateParameter(´Aparelho´, ftString, pdInput, 30, 0);
spApEntrada.Parameters.CreateParameter(´Marca´, ftString, pdInput, 30, 0);
spApEntrada.Parameters.CreateParameter(´Modelo´, ftString, pdInput, 30, 0);
spApentrada.Parameters.CreateParameter(´Inicio´, ftDateTime, pdInput, 8, 0);
spApentrada.Parameters.CreateParameter(´Final´, ftDateTime, pdInput, 8, 0);
spApEntrada.Parameters.ParamByName(´Aparelho´).Value := Edit1.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Marca´).Value := Edit2.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Modelo´).Value := Edit3.Text + ´¬´;
spApEntrada.Parameters.ParamByName(´Inicio´).Value := mskInicio.Text;
spApEntrada.Parameters.ParamByName(´Final´).Value := mskFinal.Text;
spApEntrada.Open;
end;
====================================================================================
Como fazer um procedure no Firebird com esses parâmetros?
Desde já brigadão a quem ajudar-me.
Jose
Curtir tópico
+ 0
Responder
Posts
22/10/2005
Afarias
o procedimento:
a chamada no Delphi:
T+
set term ^; CREATE PROCEDURE spApEnt ( inAparelho VARCHAR(?), inMarca VARCHAR(?), inModelo VARCHAR(?), inInicio DATE, inFinal DATE) RETURNS ( Os <tipo>, Codigo <tipo>, Aparelho <tipo>, Marca <tipo>, Modelo <tipo>, Numero <tipo>, Entrada <tipo>, Orcamento <tipo>, Prometido <tipo>, Saida <tipo>, DtaExe <tipo>) AS BEGIN FOR SELECT Os, Codigo, Aparelho, Marca, Modelo, Numero, Entrada, Orcamento, Prometido, Saida, DtaExe FROM tlbOrdemServ WHERE Aparelho STARTING :inAparelho AND Marca STARTING :inMarca AND Modelo STARTING :inModelo AND Entrada BETWEEN :inInicio AND :inFinal ORDER BY Entrada INTO :Os, :Codigo, :Aparelho, :Marca, :Modelo, :Numero, :Entrada, :Orcamento, :Prometido, :Saida, :DtaExe DO SUSPEND; END^
a chamada no Delphi:
with IBQuery1 do begin SQL.Clear; SQL.Add(´SELECT * FROM spApaEnt (´); SQL.Add(´:Aparelho, :Marca, :Modelo, :Inicio, :Final)´); ParamByName(´Aparelho´).AsString := Edit1.Text; ParamByName(´Marca´).AsString := Edit2.Text; ParamByName(´Modelo´).AsString := Edit3.Text; ParamByName(´Inicio´).AsDate := StrToDate(mskInicio.Text); ParamByName(´Final´).AsDate := StrToDate(mskDate.Text); Open; end;
T+
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)