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

Saturday Apr 3rd 1999 by You HongJiang
Share:

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

Share:
Home
Mobile Site | Full Site
Copyright 2017 © QuinStreet Inc. All Rights Reserved