Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-02-2012
LEVV LEVV is offline
Miembro
 
Registrado: ago 2006
Posts: 24
Poder: 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
  #2  
Antiguo 08-02-2012
Avatar de kapcomx
kapcomx kapcomx is offline
Miembro
 
Registrado: jun 2007
Ubicación: Puebla México
Posts: 350
Poder: 17
kapcomx Va por buen camino
varchar

y si declaras la observacion como tipo varchar (200)....
yo siempre la uso asi...
Responder Con Cita
  #3  
Antiguo 08-02-2012
LEVV LEVV is offline
Miembro
 
Registrado: ago 2006
Posts: 24
Poder: 0
LEVV Va por buen camino
Puedo Declarar el Parametro WObserv como varChar(20000) pero.. vuelve a tener el mismo problema cuando lo quiero asignar al Insert o al Update...
Responder Con Cita
  #4  
Antiguo 09-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Recuerda encerrar el código entre etiquetas, ejemplo:



.
Responder Con Cita
  #5  
Antiguo 09-02-2012
LEVV LEVV is offline
Miembro
 
Registrado: ago 2006
Posts: 24
Poder: 0
LEVV Va por buen camino
Smile

HA OK.. gracias.. no sabia como

ojala que asi quede OK...

--------- LA TABLA --------------
Código SQL [-]
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 ------------
Código SQL [-]
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
   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;


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


-- Funciona Bien ---
Código SQL [-]
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 ---
Código SQL [-]
Execute Procedure SP000_GRABAR_CLIENTES_CREDITO_LOG('20516612143',-1,0,'MAN',' Sin Comentarios...');


*/


Porfa.. ¿alguna solucion para que la variable BLOB reciba el texto...??

GRacias

Última edición por LEVV fecha: 09-02-2012 a las 14:59:31.
Responder Con Cita
  #6  
Antiguo 09-02-2012
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.043
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por LEVV Ver Mensaje
ojala que asi quede OK...
Mucho mejor

¿No hay documentación de interbase donde expliquen qué han añadido de nuevo o qué han cambiado con la anterior versión?.
Porque así a simple vista, por lógica, no tiene mucha explicación.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
concatenar un parametro a un select en un Store procedure ... ? ingel SQL 4 16-04-2010 13:07:44
puntero a un procedure en un procedure como parametro fcios Varios 2 14-03-2009 03:41:22
Problema con un parámetro de salida en un Stored Procedure taote Firebird e Interbase 5 09-06-2004 20:41:38
Parametro Tipo BIGINT Stored Procedure hibero Firebird e Interbase 5 13-04-2004 19:49:31
duda con parametro en procedure ronson Firebird e Interbase 6 02-03-2004 15:01:01


La franja horaria es GMT +2. Ahora son las 16:44:35.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi