Ver Mensaje Individual
  #1  
Antiguo 08-02-2012
LEVV LEVV is offline
Miembro
 
Registrado: ago 2006
Posts: 24
Reputación: 0
LEVV Va por buen camino
Problemas con procedure con parametro BLOB

Hola de nuevo a todos..

Estoy creando una sentencia para Interbase 7.5 para que me adicione un registro con una observacion por cliente .. el problema es que cuando envio un texto como parametro en el Blob me sale error interno..

PERO ... esta sentencia funciona perfectamente en Interbase XE..

¿que estoy haciendo mal? o ¿como puedo hacer para que funcione en ambos Interbase..???

Es necesario que funcione asi como procedure pues es invocado en varios Triggers.. y en el Programa...


GRACIAS



--------- LA TABLA --------------
CREATE TABLE CLIENTES_CREDITO_LOG
(
CODCLI VARCHAR(20) NOT NULL,
ITEM INTEGER NOT NULL,
CREDITO INTEGER,
FCREAC TIMESTAMP,
USUARI VARCHAR(10),
OBSERVA BLOB SUB_TYPE TEXT SEGMENT SIZE 80,
CONSTRAINT PK_CLIENTES_CREDITO_LOG PRIMARY KEY (CODCLI, ITEM)
);




---------EL PROCEDURE ------------

CREATE PROCEDURE "SP000_GRABAR_CLIENTES_CREDITO_LOG"
(
WCODCLI VARCHAR(20),
WITEM INTEGER,
WCREDITO INTEGER,
WUSUARI VARCHAR(10),
WOBSERVA BLOB SUB_TYPE TEXT SEGMENT SIZE 80
)
AS
DECLARE VARIABLE WX INTEGER;

BEGIN
/*
-------- Ejemplos de Uso ------


-- Funciona Bien ---
Execute Procedure SP000_GRABAR_CLIENTES_CREDITO_LOG('201112312',0,1, 'MAN' ,NULL);
Execute Procedure SP000_GRABAR_CLIENTES_CREDITO_LOG(New.CodCli,-1,0, New.Usuari,NULL);
Execute Procedure SP000_GRABAR_CLIENTES_CREDITO_LOG(New.CodCli,-1,0, New.Usuari,NULL);

-- Funciona MAL ---
Execute Procedure SP000_GRABAR_CLIENTES_CREDITO_LOG('20516612143',-1,0,'MAN',' Sin Comentarios...');


*/
WX=0;
IF (WItem is Not Null) Then
Select Count(0) From Clientes_Credito_Log Where (CodCli=:WCodCli) And (Item=:WITEM) Into :WX;
IF ((WX is Null)or(WX=0)) Then
Insert Into Clientes_Credito_Log ( CodCli, Item, Credito, Usuari, Observa)
Values(:WCodCli,:WITEM,:WCredito,:WUsuari,:WOBSERVA);
Else
Update Clientes_Credito_Log Set Credito =:WCredito,
Usuari =:WUsuari,
Observa =:WObserva
Where CodCli=:WCodCli And Item=:WITEM;
END;
Responder Con Cita