Ir al contenido


Foto

Update de campo BLOB con sentencia SQL


  • Por favor identifícate para responder
32 respuestas en este tema

#21 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 18 diciembre 2009 - 11:02

Se que tal vez es muy prematuro preguntar pero... ¿Alguna novedad?
¿Tendrá algo que ver, como sospechabas Eliseo, el tema del subtype? *-)


Pues le he cambiado, al crearlo se creo como

BLOB SUB_TYPE 1 SEGMENT SIZE no se que

lo cambie a

BLOB SUB_TYPE 0 SEGMENT SIZE 80

y me sigue pasando mal la imagen, sin embargo, no me da ningun error.

Salud OS

  • 0

#22 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 20 diciembre 2009 - 08:05

Raro... amigo... a mi directamente me sale el error ese de la columna. Y he probado con otros valores.

¿Será de las versiones? Yo lo intenté con la v 1.5.3.

Esto me supera :( Ojalá Fena haya podido avanzar y solucionarlo. De última queda como alternativa lo que dije al comienzo: hacerlo vía Delphi.

Saludos,
  • 0

#23 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 20 diciembre 2009 - 10:01

¿Será de las versiones? Yo lo intenté con la v 1.5.3.


Seguramente amigo, yo tengo la 2.1

Salud OS
  • 0

#24 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 20 diciembre 2009 - 10:35

Si es algo de la versión mucho no puedo hacer. No me animo a instalar una nueva versión debido a dos motivos: 1) mayor compatibilidad con IBX, 2) Ya tengo proyectos hechos

Si alguien más puede realizar algunas pruebas no estaría demás.

Saludos,
  • 0

#25 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 20 diciembre 2009 - 10:53

Bueno, he hecho una prueba más... y ahora me funcionó. Al menos recibo el mismo mensaje que tu Eliseo. Probé el mismo valor que tú (h0000000_7FFFFFFF) y me aseguré a que el subtypes esté en 0 con un tamaño de bloque de 1024 (el que viene por defecto).

Lo que no entiendo porqué ahora si me funciona, y antes no si estaba todo igual exceptuando el valor de ese código hexadecimal (resulta ser mágico).

En vista a que no tengo la versión paga de IBExpert no puedo emplear el Blob Viewer/Editor.

No recuerdo si FlameRobin tiene algo parecido. Sería bueno poder ver que es lo que se guarda.
  • 0

#26 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 20 diciembre 2009 - 10:55

Pues el valor se ve en la pantalla que subí anteriormente amigo. Si que esta raro.

Salud OS
  • 0

#27 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 20 diciembre 2009 - 11:03

¡Pues debo decir amigo que su funciona!
Tanto con FameRobin como con IBExpert.
Haz con el botón secundario en el dato del campo blob y guardalo como imagen con el formato adecuado (en mi caso es una imagen de 20x20 bmp)

Luego simplemente abre el archivo guardado. Deberías poder visualizarla apropiadamente. :D

En FlameRobin el procedimiento es análogo.

El asunto amigo es que IBExpert solo muestra "símbolos raros", representaciones binarias de la imagen.

Abría que ver si con imágenes de mayor tamaño se ve bien.

Como el caso de Fena es texto no debería ser problema y leerse apropiadamente, sin importar el subtype (aunque sería adecuado que le indicase el de texto)

Saludos,
  • 0

#28 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 21 diciembre 2009 - 10:38

Ah vaya que bien, gracias Marcelo, (y)

Salud OS
  • 0

#29 Delphius

Delphius

    Advanced Member

  • Administrador
  • 6.295 mensajes
  • LocationArgentina

Escrito 21 diciembre 2009 - 12:32

No tienes que agradecer, tu haz hecho el mayor esfuerzo.
Yo sólo intenté recrearlo.

En cuanto ví como mostraba el contenido blob se me dió por probar que sucedía si presionaba el botón secundario y justo vi un "save as" y me dije ¿y si hago la prueba?

Ahora sólo habrá que esperar a que a Fena le funcione.

Saludos,
  • 0

#30 Rolphy Reyes

Rolphy Reyes

    Advanced Member

  • Moderadores
  • PipPipPip
  • 2.092 mensajes
  • LocationRepública Dominicana

Escrito 21 diciembre 2009 - 07:14

Saludos.

Muchachos veo que se han desviado un poco del tema de Fena, el problema de ella esta en que quiere actualizar un campo Blob puro texto desde el mismo motor.  Pues esa solución aparece a partir de la versión 2.

BLOB Subtype 1 Compatibility with VarChar
A. dos Santos Fernandes
(v.2.1) At various levels of evaluation, the engine now treats text BLOBs that are within the 32,765-byte string
size limit as though they were varchars. Operations that now allow text BLOBs to behave like strings are assignments,
conversions and concatenations, as well as the functions CAST, LOWER, UPPER, TRIM and SUBSTRING.
Full Equality Comparisons Between BLOBs
(v.2.0.x) Comparison can be performed on the entire content of a text BLOB.


  • 0

#31 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 30 diciembre 2009 - 05:26

Que versión de Firebird utilizas.

La última versión de Firebird ya permite hacer la consulta que probaste en el primer mensaje, y con la anterior se podía hacer con un CAST.



delphi
  1. UPDATE TABLA
  2. SET CAMPO_BLOB = cast(???? as BLOB)
  3. WHERE CONDICION



Naturalmente estoy asumiendo que quieres asignar una cadena de texto. Si quisieras poner valores hexadecimales (como en una imagen) habría que investigarlo.

NOTA: Si utilizas una versión tan antigua como Firebird 1.5, prueba esa consulta, pero creo que no vas a tener más remedio que usar una UDF para hacerlo (creo recordar que con las UDF que vienen por defecto con Firebird, ya llevan una función que permite convertir un texto a BLOB).
  • 0

#32 egostar

egostar

    missing my father, I love my mother.

  • Administrador
  • 14.448 mensajes
  • LocationMéxico

Escrito 30 diciembre 2009 - 05:33

Muy interesante, habrá que hacer algunas pruebas a ver como va.

Salud OS
  • 0

#33 Marc

Marc

    Advanced Member

  • Moderadores
  • PipPipPip
  • 1.484 mensajes
  • LocationMallorca

Escrito 30 diciembre 2009 - 05:35

Vaya, no me había fijado que hay una segunda página en este hilo, y que ya se ha comentado de que Firebird 2 permite la utilización directa de texto con campos memo (como mucho hay que poner un CAST).  :$

Para quien quiera hacerlo con Firebird 1.5, le sigue quedando la función string2blob que viene en la UDF fbudf.sql, y que por tanto podéis declarar tranquilamente en vuestra base de datos, puesto que va a estar disponible en cualquier instalación de Firebird.
  • 0




IP.Board spam blocked by CleanTalk.