Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-08-2010
Mauro Daniel Mauro Daniel is offline
Miembro
 
Registrado: nov 2006
Posts: 39
Poder: 0
Mauro Daniel Va por buen camino
Question Convertir blob en varchar

Hola a todos! Estoy utilizando Interbase 6 y necesito crear una udf (con Delphi) que me permita tomar los 100 primeros caracteres de un campo blob y pasarlos a un string...
He leido muchos hilos de la página y lo que he encontrado es convertir texto en blob (yo necesito hacer la operacion inversa)
Espero me puedan ayudar! Desde ya muchas gracias!
Responder Con Cita
  #2  
Antiguo 27-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Pero se supone que en el blob tienes guardardo texto, no?, porque si son datos binarios vas a tener problemitas
Responder Con Cita
  #3  
Antiguo 27-08-2010
Mauro Daniel Mauro Daniel is offline
Miembro
 
Registrado: nov 2006
Posts: 39
Poder: 0
Mauro Daniel Va por buen camino
Si Casimiro. En estos campos solo tenemos almacenado texto
Supongo que tiene que haber una forma, pero por ahora no la puedo encontrar . Hace unas horas que me parto la cabeza pensando y probando jeje
Espero puedan ayudarme!!!
Responder Con Cita
  #4  
Antiguo 27-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Entonces, si tienes el campo blob declarado como "de texto" y tienes almacenado texto, sólo debes usarlo como un campo varchar, normal.

Código:
tuvariable := DStucampoblob.asstring;
Si quieres los 100 primeros caracteres desde delphi puedes usar la función copy y si es en sql entonces puede que te valga hacer un cast

Código:
cast(tucampoblob as varchar(100))
Responder Con Cita
  #5  
Antiguo 27-08-2010
Mauro Daniel Mauro Daniel is offline
Miembro
 
Registrado: nov 2006
Posts: 39
Poder: 0
Mauro Daniel Va por buen camino
Fue lo que probé en un principio, pero me da el siguiente error:

fmSQLEditor.frmData.DataD.SelectQuery:
Overflow occurred during data type conversion.
conversion error from string "BLOB".

Debe ser que no es de texto..aunque solo almaceno eso. Te agradezco mucho tu ayuda Casimiro!
Responder Con Cita
  #6  
Antiguo 27-08-2010
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.021
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Ve haciéndolo por "tramos" hasta que llegues al registro que tiene el problema, puede que realmente no tenga texto en algún registro.
También puede que sea null, aunque si usas "AsString" lo convertiría a '' (cadena vacía).
Otra cosa que puede pasar es que hayas declarado el campo varchar de un tamaño y lo que estás extrayendo sea más grande y no quepa.
Responder Con Cita
  #7  
Antiguo 27-08-2010
Mauro Daniel Mauro Daniel is offline
Miembro
 
Registrado: nov 2006
Posts: 39
Poder: 0
Mauro Daniel Va por buen camino
Cuando lo tomo desde delphi con el asstring si me lo convierte a cadena y lo puedo trabajar...
Cuando intento con Interbase de la forma:
Select cast(comentarios as varchar(100)) from coprove
por mas que haga un select de un único registro en el que se que el comentario tiene menos de 100 caracteres, me da el error mencionado en el mensaje anterior...

Mi idea era crear una udf que pase como parámetro el campo blob a delphi y manipularlo ahí devolviendo un string de 100 caracteres. Aunque ya dudo si se puede

Me pongo a intentarlo nuevamene. Muchas gracias por tu ayuda Casimiro. Sigo pendiente de tus respuestas!!!
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Concadenar un Blob y un Varchar ingabraham Varios 19 15-08-2010 21:33:28
Asignar un varchar a un blob Minotaure Firebird e Interbase 2 30-06-2008 10:50:51
Que es Mejor un Varchar o Blob brandolin Firebird e Interbase 4 14-03-2005 03:23:15
UDF para convertir de un BLOB Type Text a un Varchar???? AGAG4 SQL 0 06-12-2004 20:59:47
Como convertir un campo VARCHAR a uno BLOB, si se puede? judoboy Firebird e Interbase 10 31-07-2003 18:28:45


La franja horaria es GMT +2. Ahora son las 07:35:34.


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