• Publicidad

Extraer datos de campo tipo Blob en firebird

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Extraer datos de campo tipo Blob en firebird

Notapor sarriaga » 2014-02-27 15:40 @695

Hola, ¿qué tal? Tengo problemas para extraer registros en una consulta Firebird ya que uno de los campos es de tipo Blob y al ejecutar la consulta no se realiza correctamente o no me extrae ningún registro. ¿De qué manera puede extraerse, con una consulta normal? Espero puedan ayudarme. Saludos.
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Publicidad

Re: Extraer datos de campo tipo Blob en firebird

Notapor explorer » 2014-02-28 00:14 @051

Según la documentación de DBI, solo hay que tener unas precauciones cuando el contenido de los Blob sea muy grande. Por lo demás, son un SELECT asignado el campo a una variable escalar, sería más que suficiente. Ejemplo.

Y según la documentación de DBD::Firebird, en la sección de errores y limitaciones, no está soportada la lectura/escritura de campos Blob de bloque en bloque; y que el tamaño máximo del Blob está ajustado a 1 MB.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Extraer datos de campo tipo Blob en firebird

Notapor sarriaga » 2014-02-28 08:32 @397

Ok, si a la tabla le cambio el tipo de campo, es decir de Blob a Varchar, el tamaño máximo de varchar son 255 caracteres, pero los datos que van en ese campo pueden exceder el tamaño. Con el campo tipo varchar mi script funciona correctamente. ¿Podría utilizar otro tipo de campo que no sea BLOB? Ya que no me queda muy claro cómo extraer la información de ésta manera.
sarriaga
Perlero nuevo
Perlero nuevo
 
Mensajes: 69
Registrado: 2013-10-21 08:42 @404

Re: Extraer datos de campo tipo Blob en firebird

Notapor explorer » 2014-02-28 11:34 @523

A ver... extraer la información de la base de datos siempre es la misma: variables escalares (o como pones en los ejemplos, elementos de un array). DBI te dejará el resultado de la consulta en esos escalares.

Pero... otra cosa distinta es qué contienen esos campos.

Dices que son de tipo BLOB, pero no nos has dicho qué significan esos datos. No es lo mismo que se trate de un texto, o una imagen, o un sonido, o un vídeo. Según el tipo de datos, necesitarás mostrarlos (en pantalla o en HTML) de una forma distinta.

Para saber si estás leyendo bien el BLOB, te vale con hacerle un length() a la variable escalar o al elemento del array que alberga los datos del BLOB sacados de la base de datos, después de hacer la consulta. Si devuelve un valor mayor que 0, entonces sí que estás leyendo los campos BLOB.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 18 invitados