Problemas com exportação e importação usando DBMemo

Delphi

02/11/2004

Estou usando um DBMemo, se os dados salvos é de apenas uma linha tudo bem, mas se eu pulo uma linha ele grava dois quadrados no banco de dados, quando eu exporto esses dados para um arquivo texto eu consigo importar somente quando eu tenho registro de apenas um linha dos campos que foram usados componentes DBMemo, se alguns dados que foram exportados conter esses registros com quadrados, ou seja dados que foram usados mais de uma linha no DBMermo, eles retornam erros, o pg fica instavel, como se estivesse fazendo uma busca.
Porque quando dou enter e salvo um DB ele faz isso, como resolver o problema da importação desses dados.


Zotti

Zotti

Curtidas 0

Respostas

Edilcimar

Edilcimar

02/11/2004

mostre o fonte para que alguém tente achar o erro


GOSTEI 0
Zotti

Zotti

02/11/2004

o codigo fonte,
aqui ele exporta dados que foram entroduzidos em um db pelo componente DBMemo

procedure TBL.SpeedButton11Click(Sender: TObject);
var
namebl : string;
Arq: TextFile;
begin
PageControl1.ActivePageIndex := 0;
if SaveDialog1.Execute then
begin
Screen.Cursor := crHourGlass;
with DmGlobal.Tblbl   do
begin
repeat
AssignFile(Arq, SaveDialog1.FileName);
ReWrite(Arq);
WriteLn(Arq,FieldByName(´NRBL´).AsString + ´|´ +
FieldByName(´SAILED_DATE´).AsString + ´|´ +
FieldByName(´SH_SHIPPER´).AsString + ´|´ +
FieldByName(´CONSIGNEE´).AsString + ´|´ +
FieldByName(´NOTIFY´).AsString + ´|´ +
FieldByName(´ALSONOTIFY´).AsString + ´|´ +
FieldByName(´VESSEL´).AsString + ´|´ +
FieldByName(´VOYAGE´).AsString + ´|´ +
Edit;
namebl:= SaveDialog1.filename;
DmGlobal.TblblDiretorio.asstring:= namebl;
Post;
Last;
PageControl1.ActivePageIndex := 0;
until EOF;
CloseFile(Arq);
end;
Screen.Cursor := crDefault;
end;
end;

Aqui ele importa
procedure TBL.SpeedButton12Click(Sender: TObject);
var
Arq: TextFile;
Texto: String;
I: Integer;
function MontaVariavel: String;
var
monta: String;
begin
monta := ´´;
inc(I);
while Texto[I] <> ´*´ do
begin
if Texto[I] = ´|´ then
break;
monta := monta + Texto[I];
inc(I);
end;
result := monta;
end;
begin
if OpenDialog1.Execute then
begin
Screen.Cursor := crHourGlass;
DmGlobal.Tblbl.Open;
AssignFile(Arq, OpenDialog1.FileName);
Reset(Arq);
if not EOF(Arq) then
repeat
ReadLn(Arq,Texto);
with DmGlobal.Tblbl do  
begin
Edit;
i := 0;
FieldByName(´NRBL´).AsString := MontaVariavel;
FieldByName(´SAILED_DATE´).AsString := MontaVariavel;
FieldByName(´SH_SHIPPER´).AsString := MontaVariavel;
FieldByName(´CONSIGNEE´).AsString := MontaVariavel;
FieldByName(´NOTIFY´).AsString := MontaVariavel;
FieldByName(´ALSONOTIFY´).AsString := MontaVariavel;
FieldByName(´VESSEL´).AsString := MontaVariavel;
FieldByName(´VOYAGE´).AsString := MontaVariavel;
Last;  end;
until EOF(Arq); 
CloseFile(Arq);
Screen.Cursor := crDefault;
end;
end;

Bem estou usando uma função, para importar os dados de um arquivo txt, e os campos mencionados são campos de dados gerados de DBMemo.


GOSTEI 0
Aroldo Zanela

Aroldo Zanela

02/11/2004

Colega,

Tente o seguinte:

(qCadastro.FieldByName(´campo_blob´) as TBlobField).Assign( ... origem ...)


Da forma acima, você pode armazenar qualquer ´coisa´ no banco, como: executáveis, PDFs, Docs, Zips, ou seja, até texto simples.


GOSTEI 0
Zotti

Zotti

02/11/2004

Como declarar a origem neste caso, não entendi...


GOSTEI 0
POSTAR