Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Problema al guardar en campo BLOB firebird (https://www.clubdelphi.com/foros/showthread.php?t=83501)

n03l 24-06-2013 20:22:18

Problema al guardar en campo BLOB firebird
 
saludos.

recurro a uds a ver si me echan una manito ya q tengo problemas al guardar datos en un campo memo de firebird 2.5

tengo este campo en la base de datos:
Código:

PRUEBA BLOB SUB_TYPE 1 SEGMENT SIZE 4096
y este codigo

Código Delphi [-]
Opciones.Edit;
Opciones.FieldByName('PRUEBA').AsString:='prueba cinco seis';
Opciones.Post;
IBTransaction.CommitRetaining;

pero no se porque desde delphi solo me muestra el primer caracter

y desde IBEXpert me lo muestra asi p r u e b a c i n c o s e i s
y si le doy editar tambien solo me muestra el primer caracter y si lo edito desde alli si funciona bien.

uso delphi 2010 componentes interbase para las tablas el TIBDataset

saludos

celades1 25-06-2013 08:21:45

hola

prueba con size 80, que es como yo trabajo

Código SQL [-]
CREATE DOMAIN T_MEMO AS
BLOB SUB_TYPE 1 SEGMENT SIZE 80 CHARACTER SET NONE;


si no te carga bien con el asstring deberias hacerlo con loadfromstream.

si tienes problemas te pondre un ejemplo

Saludos

n03l 25-06-2013 17:47:34

Hola gracias por responder,
Fijate q me fije este post
http://www.clubdelphi.com/foros/showthread.php?t=80380

e ise esto
Código Delphi [-]
FileName, FieldName: string;
BLOB:TSTREAM;
STREAM:TSTREAM;
begin


Filename:='D:\AAA.txt';

 BLOB:=TFILESTREAM.Create(Filename,FMOPENREAD); //Asignamos el archivo abierto al //stream blob.
    Opciones.Edit;; // Insertamos un nuevo registro.
   STREAM:=Opciones.CreateBlobStream(Opciones.FieldByName('PRUEBA'), bmWrite); //Preparamos el campo blob para escritura.
   STREAM.CopyFrom(BLOB,BLOB.Size); //Copiamos el archivo que hemos abierto al Stream //para que el query lo guarde.
 
   BLOB.DESTROY;
   STREAM.DESTROY;
   Opciones.Post; //guardo el registro.
  IBTransaction.CommitRetaining;

pero me aparecen puros ?????????????????? signos de interrogacion en el campo

tambien e sustituido esta linea
Código Delphi [-]
 BLOB:=TFILESTREAM.Create(Filename,FMOPENREAD);
por esta otra
Código Delphi [-]
BLOB:=TStringStream.Create('uno dos tres');
y pasa lo mismo guarda puros signos de interrogacion???

saludos

n03l 25-06-2013 18:53:01

Bueno e hecho la prueba asi
Código Delphi [-]
Opciones.Edit;
Opciones.FieldByName('PRUEBA').Text:='uno dos tres';
Opciones.Post;
IBTransaction.CommitRetaining;
y funciona bien en una aplicacion delphi estandar, pero yo lo estoy hacien desde un servico delphi y me sigue sin funcionar me lo sigue guardando asi: u n o d o s t r e s y cuando lo edito en IBEXpert se borran todos los caracteres menos el primero
saludos

Casimiro Notevi 25-06-2013 19:12:01

Recuerda, no somos adivinos ni tenemos bola de cristal, si no pones todo el código de lectura y grabación ¿cómo te ayudamos? ;)

n03l 25-06-2013 19:19:26

Hola, saludos

el codigo de grabacion son los q e puesto arriba

y para ver lo que se guarda uso el IBEXpert u o un programita delphi con un TDBMemo

Casimiro Notevi 25-06-2013 19:31:00

Bien, había entendido que te habías fijado en ese código para hacer el tuyo. Bueno, entonces se supone que tienes un campo blob del tipo texto, algo así:
domComentarios blob sub_type text


Y ese campo lo usas para guardar texto normal, ¿es así?
Explica exactamente qué haces o qué quieres hacer, ¿guardar texto que teclea el usuario?, ¿leer texto de un fichero?, ¿ese fichero es texto "plano"?, ¿se lee texto de la memoria?, etc.

n03l 25-06-2013 19:47:25

correcto es para guardar texto plano generado en el servicio de una variable string, decidi este tipo de datos xq necesito ir guardando alli una especie de observacion y que pueda ir creciendo sin problemas

Casimiro Notevi 25-06-2013 20:11:21

Cita:

Empezado por n03l (Mensaje 462774)
correcto es para guardar texto plano generado en el servicio de una variable string, decidi este tipo de datos xq necesito ir guardando alli una especie de observacion y que pueda ir creciendo sin problemas

Pero con "creciendo" ¿qué quieres decir?, ¿muchos registros?, ¿un registro que va ampliándose?

n03l 25-06-2013 20:19:14

si, un registro que va ampliándose

Casimiro Notevi 25-06-2013 20:41:13

Entonces olvídate de stream y todo eso, trátalo como un campo de texto normal.

Casimiro Notevi 03-10-2015 00:15:36

Cita:

Empezado por jo3litro (Mensaje 497522)
Tengo una tabla personales, lo que quiero consultar es si el campo blob (foto), tiene dato, como consulto ?
if QConsultaFoto. ?????? then
Alguna idea ?
Gracias,

Bienvenido a clubdelphi, como siempre aconsejamos a los nuevos, no olvides leer nuestra guía de estilo, gracias por tu colaboración :)

jo3litro 05-10-2015 22:57:24

Creo que resolvi el problema, tome el consejo de tratarlo como un campo de texto normal y funciona,

Gracias !!!


La franja horaria es GMT +2. Ahora son las 12:18:14.

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