[firebase-br] procedure não funciona
Mauricio Rufino da Costa Rufino
mauricio_terere em hotmail.com
Sáb Jul 15 09:52:18 -03 2006
Estou trabalhando com o Delphi 7.0, DBExpress e FireBird 1.5. Tenho a
seguinte procedure:
CREATE PROCEDURE PRC_PARC_CONT (
ICOMPRA INTEGER,
ICSENT VARCHAR(1),
IUSU SMALLINT,
IN_DOC VARCHAR(15),
IVL_CONTA NUMERIC(10,2),
ICLAS_CONT INTEGER,
IN_PRAZO SMALLINT,
ILOJA SMALLINT,
IDT_EMIS DATE,
IN_PARC SMALLINT,
IFORM_PAGT VARCHAR(2),
IFORNEC INTEGER)
AS
DECLARE VARIABLE VVLPARC NUMERIC(12,2);
DECLARE VARIABLE VCONT INTEGER;
DECLARE VARIABLE VSEQUENC INTEGER;
DECLARE VARIABLE VDATAVENC DATE;
DECLARE VARIABLE VI INTEGER;
begin
VI = 1;
VVLPARC = (IVL_CONTA / IN_PARC);
If (ICSENT = 'N') Then
VCONT = 1;
If (ICSENT = 'S') Then
VCONT = 0;
While (VI <= IN_PARC) Do
Begin
Update VARTEMP Set NUMERO = NUMERO + 1
Where IDCODIGO = 13
And IDLOJA = :ILOJA;
Select NUMERO From VARTEMP
Where IDCODIGO =13
And IDLOJA = :ILOJA
Into :VSEQUENC;
VDATAVENC = :IDT_EMIS + (VCONT * IN_PRAZO);
Insert Into CONTASPAGAR (IDCODIGO, DATALANCAMETO, NUMERODOCUMENTO,
DATADOCUM, CLASSECONTABIL,
CODFORNEC, TOTALPARC, VLTOTAL, NUMPARC, VLPARC, DATAVENC, FORMAPAGTO,
IDUSU_IMPL, IDCOMPRA, IDLOJA)
Values (:VSEQUENC, CURRENT_DATE, :IN_DOC, :IDT_EMIS, :ICLAS_CONT,
:IFORNEC, :IN_PARC, :IVL_CONTA, :VI||'/'||:IN_PARC, :VVLPARC, :VDATAVENC,
:IFORM_PAGT, :IUSU, :ICOMPRA, :ILOJA);
VCONT = VCONT + 1;
VI = VI + 1;
end
When Any Do
Exception EXCEPTION_ERRO_PARC;
end
Ela funciona normalmente na IBExpress mas quando executo no Delphi da o
seguinte mensgem de erro:
0,3333;38::;401:00000001000000000;000000515444455?4=494 is not a valid BCDS
value.
Esta procedure atua na seguinte tabela:
CREATE TABLE CONTASPAGAR (
IDCODIGO INTEGER NOT NULL,
DATA_INC DATE DEFAULT 'TODAY',
DATA_ALT DATE,
DATA_HAB DATE,
DATALANCAMETO DATE,
NUMERODOCUMENTO VARCHAR(15),
DATADOCUM DATE,
CLASSECONTABIL SMALLINT NOT NULL,
HISTORICO VARCHAR(200),
CODFORNEC INTEGER,
TOTALPARC SMALLINT,
VLTOTAL D_VALOR /* D_VALOR = DECIMAL(12,2) DEFAULT 0 */,
VLPARC D_VALOR /* D_VALOR = DECIMAL(12,2) DEFAULT 0 */,
DATAVENC DATE,
VLPAGO COMPUTED BY ((Select SUM(PAGAMENTOS.VALOR) From
PAGAMENTOS Where PAGAMENTOS.IDCONTPAG=CONTASPAGAR.IDCODIGO)),
VLRESTA COMPUTED BY ((VLPARC - VLPAGO)),
PAGO D_STATUS /* D_STATUS = CHAR(1) DEFAULT 'N' */,
DATAPAG DATE,
FORMAPAGTO CHAR(2),
BANCO CHAR(3),
NUMCHEQUE CHAR(8),
CHUEQUETERC D_STATUS /* D_STATUS = CHAR(1) DEFAULT 'N' */,
NOMETITULAR VARCHAR(50),
OBS D_OBS /* D_OBS = BLOB SUB_TYPE 1 SEGMENT SIZE 100 */,
DELETADO D_STATUS /* D_STATUS = CHAR(1) DEFAULT 'N' */,
BLOQUEADO D_STATUS /* D_STATUS = CHAR(1) DEFAULT 'N' */,
IDUSU_IMPL SMALLINT,
IDUSUALT SMALLINT,
IDCOMPRA INTEGER DEFAULT 0,
IDLOJA SMALLINT NOT NULL,
NUMPARC VARCHAR(5)
);
_________________________________________________________________
Insta-le já o Windows Live Messenger http://get.live.com/messenger/overview
Mais detalhes sobre a lista de discussão lista