Fórum erro no INSERT em procedure #56356
26/06/2006
0
SET TERM ^ ; CREATE PROCEDURE INSERINDO ( BANCO VARCHAR(30), TIPO VARCHAR(30), NRO_CHQ INTEGER, NRO_CARTAO INTEGER, ESTADO VARCHAR(30), VALOR VARCHAR(12), EMITIDO DATE, DEBITO DATE, OBS VARCHAR(50)) RETURNS ( RETORNO VARCHAR(100), TOTAL VARCHAR(12)) AS DECLARE VARIABLE VERIFICA VARCHAR(500); BEGIN IF (:nro_cartao <> ´´) THEN SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CARTAO = :nro_cartao INTO :verifica; ELSE SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CHQ = :nro_chq INTO :verifica; if (VERIFICA IS NOT NULL) then RETORNO = ´EXISTE´; else EXECUTE STATEMENT ´INSERT INTO CONTAS VALUES(NULL,´ || :BANCO || ´,´ || :TIPO || ´,´ || :NRO_CHQ|| ´,´ || :NRO_CARTAO || ´,´ || :ESTADO || ´,´ || :VALOR || ´,´ || :EMITIDO || ´,´ || :DEBITO || ´,´ || :OBS || ´)´; SELECT SUM(VALOR) FROM CONTAS WHERE ESTADO = ´A COMPENSAR´ INTO :TOTAL; SUSPEND; WHEN ANY do BEGIN RETORNO = ´spINSERINDO - ´ || SQLCODE; SUSPEND; END END^
spINSERINDO - -904
alguem pode me ajudar???
Mestre5
Curtir tópico
+ 0Posts
28/06/2006
Cabelo
Gostei + 0
28/06/2006
Mestre5
Gostei + 0
29/06/2006
Emerson Nascimento
SET TERM ^ ; CREATE PROCEDURE INSERINDO ( BANCO VARCHAR(30), TIPO VARCHAR(30), NRO_CHQ INTEGER, NRO_CARTAO INTEGER, ESTADO VARCHAR(30), VALOR VARCHAR(12), EMITIDO DATE, DEBITO DATE, OBS VARCHAR(50)) RETURNS ( RETORNO VARCHAR(100), TOTAL VARCHAR(12)) AS DECLARE VARIABLE VERIFICA VARCHAR(500); BEGIN IF (:nro_cartao <> ´´) THEN SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CARTAO = :nro_cartao INTO :verifica; ELSE SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CHQ = :nro_chq INTO :verifica; if (VERIFICA IS NOT NULL) then RETORNO = ´EXISTE´; else INSERT INTO CONTAS VALUES(NULL,:BANCO,:TIPO,:NRO_CHQ, :NRO_CARTAO,:ESTADO,:VALOR, :EMITIDO,:DEBITO,:OBS); SELECT SUM(VALOR) FROM CONTAS WHERE ESTADO = ´A COMPENSAR´ INTO :TOTAL; SUSPEND; WHEN ANY do BEGIN RETORNO = ´spINSERINDO - ´ || SQLCODE; SUSPEND; END END^
Gostei + 0
02/07/2006
Mestre5
IF (:NRO_CARTAO > 0) THEN BEGIN RETORNO = ´CARTAO >´; FOR SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CARTAO = :NRO_CARTAO INTO :VERIFICA DO BEGIN --BREAK; END END ELSE BEGIN RETORNO = ´CHEQUE >´; SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND NRO_CHQ = :NRO_CHQ INTO :VERIFICA; END IF (VERIFICA IS NOT NULL) THEN BEGIN RETORNO = ´REGISTRO JA EXISTE, CLIQUE EM ATUALIZAR...´; EXIT; END ELSE BEGIN CONTADOR = 0; RETORNO = RETORNO || ´ INSERE´; WHILE (:CONTADOR < :PARCELAS) DO BEGIN IF (:NRO_CHQ IS NOT NULL) THEN BEGIN INSERT INTO CONTAS VALUES (NULL, :BANCO, :TIPO, :NRO_CHQ, NULL, :ESTADO, :VALOR, :EMITIDO, :DEBITO, :OBS ); NRO_CHQ = NRO_CHQ + 1; END ELSE BEGIN INSERT INTO CONTAS VALUES (NULL, :BANCO, :TIPO, NULL, :NRO_CARTAO, :ESTADO, :VALOR, :EMITIDO, :DEBITO, :OBS ); NRO_CARTAO = NRO_CARTAO + 1; END CONTADOR = CONTADOR + 1; END END SELECT SUM(VALOR) FROM CONTAS WHERE ESTADO = ´A COMPENSAR´ INTO :TOTAL; SUSPEND; WHEN ANY do BEGIN RETORNO = RETORNO || ´ - spINSERINDO - COD: ´ || SQLCODE ; SUSPEND; END
Gostei + 0
03/07/2006
Emerson Nascimento
IF (coalesce(:NRO_CARTAO,0) > 0) THEN BEGIN RETORNO = ´CARTAO >´; NRO_CHQ = NULL; END ELSE BEGIN RETORNO = ´CHEQUE >´; NRO_CARTAO = NULL; END IF (EXISTS(SELECT CONTASID FROM CONTAS WHERE BANCO = :BANCO AND ((coalesce(:NRO_CARTAO,0) > 0) AND NRO_CARTAO = :NRO_CARTAO) OR ((coalesce(:NRO_CHQ,0) > 0) AND NRO_CHQ = :NRO_CHQ))) THEN BEGIN RETORNO = RETORNO || ´ REGISTRO JA EXISTE, CLIQUE EM ATUALIZAR...´; EXIT; END ELSE BEGIN CONTADOR = 0; RETORNO = RETORNO || ´ INSERE´; WHILE (:CONTADOR < :PARCELAS) DO BEGIN NRO_CHQ = NRO_CHQ + 1; NRO_CARTAO = NRO_CARTAO + 1; INSERT INTO CONTAS VALUES (NULL, :BANCO, :TIPO, :NRO_CHQ, :NRO_CARTAO, :ESTADO, :VALOR, :EMITIDO, :DEBITO, :OBS); CONTADOR = CONTADOR + 1; END END SELECT SUM(VALOR) FROM CONTAS WHERE ESTADO = ´A COMPENSAR´ INTO :TOTAL; SUSPEND; WHEN ANY DO BEGIN RETORNO = RETORNO || ´ - spINSERINDO - COD: ´ || cast(SQLCODE as varchar(10)); SUSPEND; END
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)