Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Tablas planas (https://www.clubdelphi.com/foros/forumdisplay.php?f=20)
-   -   Corrupt Memo/BLOB file. Table: C:\tabla.mb (https://www.clubdelphi.com/foros/showthread.php?t=3006)

Adrix 18-08-2003 01:46:54

Corrupt Memo/BLOB file. Table: C:\tabla.mb
 
Hola, tengo el siguiente problema: estoy trabajando con una tabla Paradox y al querer guardar el contenido de un TMemo en un campo tipo Memo size 240 me salta el error "Corrupt Memo/BLOB file. Table: C:\tabla.mb" si es muy largo el string, pero si pongo solo algunas lineas no pasa nada.
¿Por que se produce este error y que puedo hacer para solucionarlo?. Gracias!...

jhonny 19-08-2003 16:02:14

De que forma tratas de guardarlo?

Utiliza la siguiente forma y nos comentas tus resultados;)

Código:

Campoparadox.AsBlob := Memo.Text;
Espero te sirva.

Adrix 19-08-2003 20:33:05

Mira, estube probando, pero no me deja hacer CampoParadox.AsBlob . En realidad lo que hago es

Table1.FieldByName('Nombre_Campo').AsBlob ,

y al compiarlo no me lo reconoce (me dice "undeclared identifier 'asBlob' ") . No se si hay otra forma de referirse al campo de la tabla, yo la que conocia era esa...

La forma que usaba, y que me daba el error, era

Table1.FieldByName('Nombre_Campo').AsString:= Memo1.Lines.Text;

o tambien ingresando el texto en un TDBMemo, pero igual me daba error al hacer el post de la tabla.

No se si servira de mucho este dato, pero trabajo con delphi 6. Y otra cosa, el texto que estoy tratando de guardar en la tabla es codigo HTML, no se si tendra algo que ver...

Muten 31-08-2003 13:27:10

Me parece q el fallo está en lo de 'Memo1.Lines.Text', creo q un objeto TString sólo puede tener como longitud máxima 235 caracteres, o algo así me pareció leer una vez.. compruébalo.

Salu2

Adrix 22-09-2003 00:04:27

Bueno, gracias por tratar de ayudarme, al final encontre como solucionar el error, por si alguien tiene el mismo problema, con esto anda bien (aunque puede que halla una solucion mas sencilla):

Código:


var bs: TBlobStream;
...

  bs:= TStringStream.Create(AAdjuntos.Items.Text);
  try
    TBlobField(FieldByName('Adjuntos')).LoadFromStream(bs);
  finally
    bs.Free;
  end;
...

Ahora no recuerdo bien de donde saque la respuesta, porque hace rato que la habia encontrado y me olvide de postearla en ese momento, perdon. Gracias igual!.

Adri.

sanxpue 01-10-2003 19:33:21

en realidad ese problema lo tuve yo cuando estana usando delphi 1 imaginense... jejeje

la solucion es

Tabla.FieldByName('campo_mem').Assign(Memo1.Lines); y para
subirlo
Memo1.Lines.Assign(Tabla.FieldByName('campo_mem'));


La franja horaria es GMT +2. Ahora son las 22:02:02.

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