Stored Procedure

Delphi

16/06/2010

Bom pessoal, utilizo o Firebird e ainda nao trabalhei com StoreProcedure nele, então eu queria fazer um Stored Procedure onde vou colocar alguns filtros de entrada...ai uns de retornos.....mas os filtros de entrada nao tinha q ser obrigatorio....tipo se eu nao colocar nada ele vai buscar tudo daqle filtro!


nao estou conseguindo fazer isso, alguém poderia me ajudar ??
Robson Morais

Robson Morais

Curtidas 0

Respostas

Junior Miranda

Junior Miranda

16/06/2010

Um exemplo bem básico
SQLTEXT -> Declarado como variavel de varchar... um tamanho que comporte 
a select
PCODSETOR, PCODGRUPO, PCODMARCA  são parametros de entrada
campo1, campo2, campo3 sao parametros de saida

no delphi voce chama... ."Select * from ProcedureName(PCODSETOR, 
PCODGRUPO, PCODMARCA)"

SQLTEXT = "select campo1,campo2,campo3 from produtos "
IF (PCODSETOR > 0) then
   SQLTEXT = SQLTEXT||" where codsetor = "||pcodsetor
else IF (PCODGRUPO > 0) then
   SQLTEXT = SQLTEXT||" where CODGRUPO= "||PCODGRUPO
else IF (PCODMARCA > 0) then
   SQLTEXT = SQLTEXT||" where CODMARCA= "||PCODMARCA

  for execute statement sqltext
       into :campo1,campo2,campo3
do
begin
   suspend;
end



[]'s
GOSTEI 0
Robson Morais

Robson Morais

16/06/2010

cara to meio atrapalhado aqui.....



CREATE PROCEDURE CONSULTACEP (
    cBai varchar(100),
    cCid varchar(200),
    cCep varchar(8) )
returns (
    Bairro varchar(100),
    Cidade varchar(200),
    Cep varchar(8))
as
declare variable SQLTEXT varchar (300);
BEGIN

   SQLTEXT =' Select B.Bairro, B.Codigo, C.Cidade, C.Codigo, C.CodBairro, C.Cep
       From adm_cad_bairro b, adm_cad_cidade c
       Where B.Codigo=C.CodBairro'





me ajuda a terminar....

entao...o cBai, cCid, cCep são os filtros q podem ter.....mas eles tbem podem fazer o filtro junto ou nao....posso filtrar o cBai com o cCid e ai vai....



GOSTEI 0
Robson Morais

Robson Morais

16/06/2010

Uma ajuda, por favore !
GOSTEI 0
Deivison Melo

Deivison Melo

16/06/2010

Dessa forma que você está mondando a query em uma variável terá que utilizar o comando: Execute Statemen para maiores informações pesquise no google sobre: execute statement firebird   Qualquer coisa estou á disposição!!    
GOSTEI 0
POSTAR