Solved

Saving and Restoring DevEx view information via streams

Posted on 2009-04-07
3
1,080 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

Optimizing Cloud Backup for Low Bandwidth

With cloud storage prices going down a growing number of SMBs start to use it for backup storage. Unfortunately, business data volume rarely fits the average Internet speed. This article provides an overview of main Internet speed challenges and reveals backup best practices.

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…
How to install Selenium IDE and loops for quick automated testing. Get Selenium IDE from http://seleniumhq.org Go to that link and select download selenium in the right hand columnThat will then direct you to their download page.From that page s…
THe viewer will learn how to use NetBeans IDE 8.0 for Windows to perform CRUD operations on a MySql database.
The viewer will learn how to use and create new code templates in NetBeans IDE 8.0 for Windows.

803 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