Thanks for the help Nigel. Your code worked perfectly for a normal
TTable, but I am using ODBCExpress, and for some reason it wouldn't let
me typecast the field as a TMemofield or TBlobfield. But I got on the
right track and found the CreateBlobStream() function which does the job
I need.
 
procedure ReadStringFromField(SourceDataSet: TOEDataset; SourceField:
String; Slist: TStrings);
var
   Stream: TStream;
begin
   
Stream:=SourceDataSet.CreateBlobStream(SourceDataSet.FieldByName(SourceF
ield),bmRead);
    Slist.LoadFromStream(Stream);
    Stream.Free;
end;
 
procedure WriteStringToField(SourceDataSet: TOEDataset; SourceField:
String; Slist: TStrings);
var
   Stream: TStream;
begin
    SourceDataSet.Edit;
   
Stream:=SourceDataSet.CreateBlobStream(SourceDataSet.FieldByName(SourceF
ield),bmWrite);
    Stream.Write(Slist.GetText^,Strlen(Slist.GetText));
    SourceDataSet.Post;
    Stream.Free;
end;


-----Original Message-----
From: Nigel Tavendale [ mailto:[EMAIL PROTECTED]]
Sent: Monday, 1 February 1999 10:06
To: Multiple recipients of list delphi
Subject: Re: [DUG]: Memo strings


Putting In BlobStreams is fairly easy, just remeber to create and
destroy them.
 
e.g.
 
procedure TfmMain.Blob;
var
  slDesc : TStringList;
  bDesc  : TBlobStream;
begin
  {get contentsout of memo field in Table 1}
 slDesc:=TStringList.Create; //create string list
 bDesc:=TBlobStream.Create(TMemoField(Table1.FieldByName('FieldName')),b
mRead); /*Create Blobstream for reading
 slDesc.LoadFromStream(bdesc); /* fill string list with blobstream
contents
 bDesc.Free; /*destroy blobstream
 
{load contents into memo field of Table 2}
    try
     bDesc:=TBlobStream.Create(TMemoField
(Table2.FieldByName('FieldName')),bmWrite); /*create blobstream for
writing
     bDesc.Write(slDesc.GetText^,StrLen(slDesc.GetText));/*Load
blobstream with string list contents
   finally
     bDesc.Free; /* destroy blobstreram
     slDesc.Free; /* destroy stringlist 
  end; /* try - finaly block
end;
 
 
Nigel Tavendale


-----Original Message-----
From: Scott Cree < [EMAIL PROTECTED]>
To: Multiple recipients of list delphi < [EMAIL PROTECTED]>
Date: Friday, 29 January 1999 15:10
Subject: [DUG]: Memo strings


Hi All,

What is the best way to load a memo field (from an Access db) into a
stringlist object, and later save the stringlist back into the memo
field.
I have looked at the LoadFromStream method for TStrings, but I haven't
worked with streams yet, and I'm still trying to get to grips with them.

Cheers

__________________________
Scott Cree
Knowlysis Limited

Phone: +649-358-0017
Fax: +649-358-3534
E-Mail: [EMAIL PROTECTED]


------------------------------------------------------------------------
---
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz



---------------------------------------------------------------------------
    New Zealand Delphi Users group - Delphi List - [EMAIL PROTECTED]
                  Website: http://www.delphi.org.nz

Reply via email to