Solved

Saving and Restoring DevEx view information via streams

Posted on 2009-04-07
3
1,078 Views
Last Modified: 2013-11-23
I have two procedures, one of which is intended to write grid view information to a database field and the other is to read and use this information to restore the view.  Code is below.  I thought the procs were working with early testing but now I am wondering if that was a hallucination!?  I'm hoping someone can spot my problem.
 - I created similar procs where the information is stored to and restored from the registry and those work as expected
 - I can see the data being written and re-written to the database.
 - I have stepped through the program to verify that each of the commands are executing.
procedure TfrmMain.SaveShopGridsToDB;

var

  Stream: TMemoryStream;

  BS: TAdsBlobStream;

begin

  Stream := TMemoryStream.Create;

  try

    gtvShop.StoreToStream(Stream, [], '');

    dtm.tblCases.Edit;

    BS := TAdsBlobStream(dtm.tblCases.CreateBlobStream(

                       dtm.tblCases.FieldByName('CsShopGrid1'), bmWrite));

    try

      BS.CopyFrom(Stream, 0);

    finally

      BS.Free;

      dtm.tblCases.Post;

    end;

  finally

    Stream.Free;

  end;

end;
 

procedure TfrmMain.RestoreShopGridsFromDB;

var

  Stream: TMemoryStream;

  BS: TAdsBlobStream;

begin

  if dtm.tblCases.FieldByName('CsShopGrid1').IsNull then Exit;

  Stream := TMemoryStream.Create;

  try

    BS := TAdsBlobStream(dtm.tblCases.CreateBlobStream(

                       dtm.tblCases.FieldByName('CsShopGrid1'), bmRead)); 

    try

      Stream.CopyFrom(BS, 0);

      gtvShop.RestoreFromStream(Stream, True, False, [], '');

    finally

      BS.Free;

    end;

  finally

   Stream.Free;

  end;

end;

Open in new window

0
Comment
Question by:ttheimer
  • 2
3 Comments
 
LVL 5

Expert Comment

by:Mechanic_Kharkov
ID: 24093363
Maybe and of stream?

      Stream.CopyFrom(BS, 0);

      Stream.Position := 0;

      gtvShop.RestoreFromStream(Stream, True, False, [], '');

Open in new window

0
 
LVL 5

Accepted Solution

by:
Mechanic_Kharkov earned 500 total points
ID: 24093367
*end of stream :-)
0
 

Author Closing Comment

by:ttheimer
ID: 31567829
Spot on!  I added the line to reset the stream position and the save and restore worked as intended.  Thank you.
0

Featured Post

Is Your Active Directory as Secure as You Think?

More than 75% of all records are compromised because of the loss or theft of a privileged credential. Experts have been exploring Active Directory infrastructure to identify key threats and establish best practices for keeping data safe. Attend this month’s webinar to learn more.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Programmer's Notepad is, one of the best free text editing tools available, simply because the developers appear to have second-guessed every weird problem or issue a programmer is likely to run into. One of these problems is selecting and deleti…
Jaspersoft Studio is a plugin for Eclipse that lets you create reports from a datasource.  In this article, we'll go over creating a report from a default template and setting up a datasource that connects to your database.
The viewer will learn how to use NetBeans IDE 8.0 for Windows to connect to a MySQL database. Open Services Panel: Create a new connection using New Connection Wizard: Create a test database called eetutorial: Create a new test tabel called ee…
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.

947 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

18 Experts available now in Live!

Get 1:1 Help Now