CByteArrayFile -- A class used to serialize object with database field

In my project, I need to serialize some object into database field with DAO. However, I can not find any support on serializing object into database field. I have to implemented one by myself.

In this example, I will show you a class named CByteArrayFile. It is a derive class of CMemFile. With this class, we can serialize object into CByteArray object. And then, we can use DFX_Binary to transfter data into database "long binary" field.

Follwing is the sample code of how to use the CByteArrayFile class.

In the class which need to be serialize, such as CSomeClass.cpp


/////////////////////////////////////////////////////////////////////////////////////////////
CSomeClass::TransDataWithByteArray(CByteArray& byteArray, BOOL bStore)
{
 CByteArrayFile byFile;
 byFile.SetArray(&byteArray);    // attach byteArray with byFile
 if (bStore) // store object into byteArray
 {
  CArchive ar( &byFile, CArchive::store); // create CArchive object with CByteArray File
  Serialize(ar);    // Call CSomeClass::Serialize function
  ar.Close();
 }
 else // load object from byteArray
 {
  CArchive ar( &byFile, CArchive::load);
  Serialize(ar);    // Call CSomeClass::Serialize function
  ar.Close();
 }
 
 // important!!, detach byteArray with byFile. Or byteArray will be free with byFile
 byFile.Detach();
}

In the file which used CDaoRecordset derived class such as CSomeDaoRecordset

/////////////////////////////////////////////////////////////////////////////////////////////
CSomeDaoRecordset rs;    // rs.m_byteLongField is a CByteArray class
CSomeClass object;
// 1. Write to record
rs.Open(. . .);
rs.AddNew();
object.TransDataWithByteArray(rs.m_byteLongField, TRUE /* store */);
. . .
rs.Update();
rs.Close();

// 2. Read from record
rs.Open(. . .);
object.TransDataWithByteArray(rs.m_byteLongField, FALSE /* load */);
...

rs.Close();

Download source - 2 KB

Date Last Updated: April 3, 1999



Comments

  • How can I read data of memo type from an access database? Help me ! ! !

    Posted by Legacy on 09/10/2003 12:00am

    Originally posted by: shape

    How can I read data of memo type from an access database? Help me ! ! !
    

    Reply
  • How can I add the pictures to the database

    Posted by Legacy on 07/02/2002 12:00am

    Originally posted by: Alexber

    Help pls !
    I need to add the pictures from the file to DB and then read them again...
    void SetFieldValue( LPCTSTR lpszName, const COleVariant& varValue );
    How can I attach the picture to varValue ?

    Reply
  • how can i create a table for storing images, movies and text file using sql?

    Posted by Legacy on 04/18/2002 12:00am

    Originally posted by: jim

    will you kindly give me some help please?

    Reply
  • employee record

    Posted by Legacy on 02/17/2002 12:00am

    Originally posted by: Omolayo M

    I am trying to write an employee record that will retrieve picture from a table an nwind.mdb access file my problem is that after creating the formview I could bind everything with the exception of photo column to the formview is there any way in which you can help

    Reply
  • Need to Add SetFieldDirty(...) and SetFieldNull(...) to make it work

    Posted by Legacy on 08/20/2001 12:00am

    Originally posted by: chg

    // 1. Write to record
    
    rs.Open(. . .);
    rs.AddNew();
    object.TransDataWithByteArray(rs.m_byteLongField, TRUE /* store */);

    //Add Here-------

    rs.SetFieldDirty(&rs.m_byteLongField);
    rs.SetFieldNull(&rs.m_byteLongField);

    //---------------


    . . .
    rs.Update();
    rs.Close();

    Reply
  • Will this code help to store the contents of a TXT file

    Posted by Legacy on 07/26/2000 12:00am

    Originally posted by: nizam

    Hi,

    Will you kind of kind help me store the content of a TXT file in the database. And when I retrieve and load the contents into TXT file will it be in the same format.

    Please Confirm

    West Wishes
    Nizam

    Reply
  • Will this code help to store the contents of a TXT file

    Posted by Legacy on 07/26/2000 12:00am

    Originally posted by: nizam

    Hi,

    Will you kind of kind help me store the content of a TXT file in the database. And when I retrieve and load the contents into TXT file will it be in the same format.

    Please Confirm

    West Wishes
    Nizam

    Reply
  • How can I store a bitmap in a mdb file?

    Posted by Legacy on 07/05/1999 12:00am

    Originally posted by: Tiger

    I try to build a database,which has a field named "image",the data type is OLE Object.Then I drived a class from CDaoRecordSet(the DSN is the database I just build),Now I want to store a bitmap in this database,how can I do?

    Reply
Leave a Comment
  • Your email address will not be published. All fields are required.

Top White Papers and Webcasts

  • Live Event Date: December 11, 2014 @ 1:00 p.m. ET / 10:00 a.m. PT Market pressures to move more quickly and develop innovative applications are forcing organizations to rethink how they develop and release applications. The combination of public clouds and physical back-end infrastructures are a means to get applications out faster. However, these hybrid solutions complicate DevOps adoption, with application delivery pipelines that span across complex hybrid cloud and non-cloud environments. Check out this …

  • On-demand Event Event Date: October 29, 2014 It's well understood how critical version control is for code. However, its importance to DevOps isn't always recognized. The 2014 DevOps Survey of Practice shows that one of the key predictors of DevOps success is putting all production environment artifacts into version control. In this webcast, Gene Kim discusses these survey findings and shares woeful tales of artifact management gone wrong! Gene also shares examples of how high-performing DevOps …

Most Popular Programming Stories

More for Developers

RSS Feeds