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