Como usar uma stored procedure no Delphi ?
tenho essa SP
CREATE PROCEDURE GERA_CTARECEBER (
COND_PAGTO INTEGER,
DATA DATE,
VALOR NUMERIC (15, 2),
COD_EMPRESA CHAR (2))
RETURNS (
PARCELA INTEGER,
PARCELA_DE VARCHAR (20),
EMISSAO DATE,
QTDE_DIAS INTEGER,
DATA_VENCTO DATE,
VVALOR NUMERIC (15, 2),
TAXA_JUROS NUMERIC (15, 2),
VALOR_JUROS NUMERIC (15, 2),
TAXA_PART NUMERIC (15, 2),
FCOD_EMPRESA CHAR (2))
AS
DECLARE VARIABLE QTD_DIAS INTEGER;
DECLARE VARIABLE PCT_PARC NUMERIC(15,2);
DECLARE VARIABLE PCT_JUROS NUMERIC(15,2);
DECLARE VARIABLE VCOD_EMPRESA VARCHAR(10);
DECLARE VARIABLE COD_COND_PGTO INTEGER;
DECLARE VARIABLE TOTAL_PARC INTEGER;
DECLARE VARIABLE NR_PARCELA INTEGER;
DECLARE VARIABLE I INTEGER;
DECLARE VARIABLE PCT_PART NUMERIC(15,2);
DECLARE VARIABLE PCT NUMERIC(15,2);
DECLARE VARIABLE TOTAL NUMERIC(15,2);
DECLARE VARIABLE TGERAL NUMERIC(15,2);
DECLARE VARIABLE QTDE_PARC INTEGER;
begin
SELECT QTD_PARCELAS
FROM COND_PGTO WHERE COD_EMPRESA = :COD_EMPRESA AND COD_COND_PGTO = :COND_PAGTO
INTO :QTDE_PARC;
I = 1;
TOTAL = VALOR / :QTDE_PARC;
TGERAL = 0.00;
total_parc = :qtde_parc;
while (i <= :QTDE_PARC) do
begin
SELECT COD_EMPRESA,COD_COND_PGTO,NR_PARCELA,QTD_DIAS,PCT_PARC,PCT_JUROS
FROM COND_PGTO_ITEM WHERE COD_EMPRESA = :COD_EMPRESA AND COD_COND_PGTO = :COND_PAGTO AND NR_PARCELA = :I
INTO :VCOD_EMPRESA,:COD_COND_PGTO,:NR_PARCELA,:QTD_DIAS,:PCT_PARC,:PCT_JUROS;
PCT = :PCT_JUROS / 100;
PCT_PART = :PCT_PARC / 100;
TOTAL = ((:PCT_PARC * VALOR) / 100);
PARCELA = :NR_PARCELA;
VVALOR = ((TOTAL * PCT) + TOTAL);
DATA_VENCTO = :DATA + QTD_DIAS;
FCOD_EMPRESA = :COD_EMPRESA;
TGERAL = TGERAL + VVALOR;
TAXA_PART = :PCT_PARC;
TAXA_JUROS = :PCT_JUROS;
EMISSAO = :DATA;
PARCELA_DE = cast(:NR_PARCELA as varchar(2)) || ´/´||cast(total_parc as varchar(2));
QTDE_DIAS = :QTD_DIAS;
VALOR_JUROS = (TOTAL * PCT);
i = i + 1;
SUSPEND;
end
PARCELA = 9999;
VVALOR = TGERAL;
DATA_VENCTO = :DATA;
FCOD_EMPRESA = :COD_EMPRESA;
TAXA_PART = 100;
TAXA_JUROS = 0;
SUSPEND;
end
Como faço para usa-la no delphi ? quais os componentes e como faço para declarar ela la ?
valew
CREATE PROCEDURE GERA_CTARECEBER (
COND_PAGTO INTEGER,
DATA DATE,
VALOR NUMERIC (15, 2),
COD_EMPRESA CHAR (2))
RETURNS (
PARCELA INTEGER,
PARCELA_DE VARCHAR (20),
EMISSAO DATE,
QTDE_DIAS INTEGER,
DATA_VENCTO DATE,
VVALOR NUMERIC (15, 2),
TAXA_JUROS NUMERIC (15, 2),
VALOR_JUROS NUMERIC (15, 2),
TAXA_PART NUMERIC (15, 2),
FCOD_EMPRESA CHAR (2))
AS
DECLARE VARIABLE QTD_DIAS INTEGER;
DECLARE VARIABLE PCT_PARC NUMERIC(15,2);
DECLARE VARIABLE PCT_JUROS NUMERIC(15,2);
DECLARE VARIABLE VCOD_EMPRESA VARCHAR(10);
DECLARE VARIABLE COD_COND_PGTO INTEGER;
DECLARE VARIABLE TOTAL_PARC INTEGER;
DECLARE VARIABLE NR_PARCELA INTEGER;
DECLARE VARIABLE I INTEGER;
DECLARE VARIABLE PCT_PART NUMERIC(15,2);
DECLARE VARIABLE PCT NUMERIC(15,2);
DECLARE VARIABLE TOTAL NUMERIC(15,2);
DECLARE VARIABLE TGERAL NUMERIC(15,2);
DECLARE VARIABLE QTDE_PARC INTEGER;
begin
SELECT QTD_PARCELAS
FROM COND_PGTO WHERE COD_EMPRESA = :COD_EMPRESA AND COD_COND_PGTO = :COND_PAGTO
INTO :QTDE_PARC;
I = 1;
TOTAL = VALOR / :QTDE_PARC;
TGERAL = 0.00;
total_parc = :qtde_parc;
while (i <= :QTDE_PARC) do
begin
SELECT COD_EMPRESA,COD_COND_PGTO,NR_PARCELA,QTD_DIAS,PCT_PARC,PCT_JUROS
FROM COND_PGTO_ITEM WHERE COD_EMPRESA = :COD_EMPRESA AND COD_COND_PGTO = :COND_PAGTO AND NR_PARCELA = :I
INTO :VCOD_EMPRESA,:COD_COND_PGTO,:NR_PARCELA,:QTD_DIAS,:PCT_PARC,:PCT_JUROS;
PCT = :PCT_JUROS / 100;
PCT_PART = :PCT_PARC / 100;
TOTAL = ((:PCT_PARC * VALOR) / 100);
PARCELA = :NR_PARCELA;
VVALOR = ((TOTAL * PCT) + TOTAL);
DATA_VENCTO = :DATA + QTD_DIAS;
FCOD_EMPRESA = :COD_EMPRESA;
TGERAL = TGERAL + VVALOR;
TAXA_PART = :PCT_PARC;
TAXA_JUROS = :PCT_JUROS;
EMISSAO = :DATA;
PARCELA_DE = cast(:NR_PARCELA as varchar(2)) || ´/´||cast(total_parc as varchar(2));
QTDE_DIAS = :QTD_DIAS;
VALOR_JUROS = (TOTAL * PCT);
i = i + 1;
SUSPEND;
end
PARCELA = 9999;
VVALOR = TGERAL;
DATA_VENCTO = :DATA;
FCOD_EMPRESA = :COD_EMPRESA;
TAXA_PART = 100;
TAXA_JUROS = 0;
SUSPEND;
end
Como faço para usa-la no delphi ? quais os componentes e como faço para declarar ela la ?
valew
Charlesgarrotti
Curtidas 0
Respostas
Erileyvb
11/05/2006
não sei qual engine de acesso você está usando e nem qual banco de dados, parece ser interbase, mas você pode acessar uma stored procedure do interbase utilizando dbexpress ou ibx.
no dbexpress
coloque um componente SQLStoredProc, na propriedade sqlconnection, selecione o componente sqlconnection que faz a ligação com a sua base de dados.
Na propriedade storedprocname, selecione sua storedprocedure.
no onclick de um botão por exemplo coloque o seguinte código:
SQLStoredProc1.Close;
SQLStoredProc1.Params[0].Value:=valor que deve ser passado para o parametro;
...demais parametros;
SQLStoredProc1.ExecProc;
no ibx
coloque um componente IBStoredProc, na propriedade database, selecione o componente ibdatabase que faz a ligação com a sua base de dados.
Na propriedade storedprocname, selecione sua storedprocedure.
no onclick de um botão por exemplo coloque o seguinte código:
IBStoredProc1.Close;
IBStoredProc1.Params[0].Value:=valor que deve ser passado para o parametro;
...demais parametros;
IBStoredProc1.Active:=true;
no dbexpress
coloque um componente SQLStoredProc, na propriedade sqlconnection, selecione o componente sqlconnection que faz a ligação com a sua base de dados.
Na propriedade storedprocname, selecione sua storedprocedure.
no onclick de um botão por exemplo coloque o seguinte código:
SQLStoredProc1.Close;
SQLStoredProc1.Params[0].Value:=valor que deve ser passado para o parametro;
...demais parametros;
SQLStoredProc1.ExecProc;
no ibx
coloque um componente IBStoredProc, na propriedade database, selecione o componente ibdatabase que faz a ligação com a sua base de dados.
Na propriedade storedprocname, selecione sua storedprocedure.
no onclick de um botão por exemplo coloque o seguinte código:
IBStoredProc1.Close;
IBStoredProc1.Params[0].Value:=valor que deve ser passado para o parametro;
...demais parametros;
IBStoredProc1.Active:=true;
GOSTEI 0