Re: [firebase-br] procedure não funciona
francisco gamarra
francisco.gamarra em gmail.com
Ter Jul 18 10:45:44 -03 2006
vc está passando algum parametro errado.
antes de passar um parametro float verifique se ele está com duas casas
decimais
Em 15/07/06, Mauricio Rufino da Costa Rufino <mauricio_terere em hotmail.com>
escreveu:
>
> 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
>
>
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
> Para editar sua configuração na lista, use o endereço
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
> Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
Mais detalhes sobre a lista de discussão lista