Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Asignar un varchar a un blob (https://www.clubdelphi.com/foros/showthread.php?t=57785)

Minotaure 27-06-2008 12:21:52

Asignar un varchar a un blob
 
Hola,

Tengo hecho un procedure que al ejecutarlo me da el siguiente error: "Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements. internal error."

Todo me hace pensar que el error me lo da porqué asigno una varialbe varchar (250) a una variable blob (subtype text).

Mi problema es el siguiente:
Tengo una seria de parámetros de salida:
Código:

    PBASAN_DELACION19 BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    PBASAN_MUT21 BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    PBASAN_MUT20 BLOB SUB_TYPE 1 SEGMENT SIZE 80,
    PBASAN_CHFR BLOB SUB_TYPE 1 SEGMENT SIZE 80,
...

I a estos según una condición les tengo que asignar una de estas dos variables (varchar o blob):
Código:

DECLARE VARIABLE TEXTOCORTO VARCHAR(250) CHARACTER SET NONE;
DECLARE VARIABLE TEXTOLARGO BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET NONE;

El problema está en que antes tenía declarados los parámetros de salida cómo varchar, y claro, cuándo asignaba el blob al varhcar da error. Pero ahora que tengo los parámetros de salida cómo blob me sale el error descrito.


Muhcas gracias.

defcon1_es 27-06-2008 17:28:01

Hola.
No puedes asignar directamente un dato de tipo varchar a otro de tipo blob.

Si usas la libreria FreeUDFLib, usa la función F_STRBLOB para asignar el dato varchar al blob sin problemas.

Código SQL [-]
DECLARE EXTERNAL FUNCTION F_STRBLOB
    CSTRING(254),
    BLOB
RETURNS PARAMETER 2
ENTRY_POINT 'StrBlob' MODULE_NAME 'FreeUDFLib';
Como referencia, te dejo el link de un artículo de Ivan Prenosil sobre los campos blob: http://www.volny.cz/iprenosil/interb...ib_strings.htm

Saludos.

Minotaure 30-06-2008 09:50:51

Cita:

Empezado por defcon1_es (Mensaje 296717)
Hola.
No puedes asignar directamente un dato de tipo varchar a otro de tipo blob.

Si usas la libreria FreeUDFLib, usa la función F_STRBLOB para asignar el dato varchar al blob sin problemas.


Código SQL [-]DECLARE EXTERNAL FUNCTION F_STRBLOB
CSTRING(254),
BLOB
RETURNS PARAMETER 2
ENTRY_POINT 'StrBlob' MODULE_NAME 'FreeUDFLib';




Como referencia, te dejo el link de un artículo de Ivan Prenosil sobre los campos blob: http://www.volny.cz/iprenosil/interb...ib_strings.htm

Saludos.

Ok, muchas gracias por la información y por los links.


La franja horaria es GMT +2. Ahora son las 11:38:01.

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