byte* CSrArraySubrecord::GetData (void)
{
	delete m_pRawData;
	m_pRawData = NULL;
	m_RawDataSize = GetRecordSize();
	
	return NULL;
}
// creates new CRecord object and fills it with the data of the record specified by inRecID
CRecord*	//** Thread Safe **
ADataStore::ReadRecord(RecIDT inRecID) {
	DB_DEBUG("ReadRecord("<<inRecID<<")");
	CRecord* theRec = (CRecord*)nil;
	long size = GetRecordSize(inRecID);
	if (size > 0) {
		temp_buffer(DatabaseRec, p, size);	// allocate a read buffer
		p->recID = inRecID;
		p->recSize = size;
		ReadRecord(p);
		theRec = MakeRecordObject(p);
	}
	return theRec;
}
// handle created is yours to do with as you will
handle	//** Thread Safe **
ADataStore::ReadRecordHandle(RecIDT inRecID) {
	handle h;
	long fullsize = GetRecordSize(inRecID);
	long size = fullsize - sizeof(DatabaseRec);
	if (size > 0) {
		h.resize(fullsize);
		h.lock();
		DatabaseRec* p = (DatabaseRec*) *h;
		p->recID = inRecID;
		p->recSize = fullsize;
		Try_{
			ReadRecord(p);
		}
		Catch_(err) {
			h.dispose();	// clean up our mess
			Throw_(err);
		}
		::BlockMoveData(&p->recData[0], p, size);
		h.unlock();
		h.resize(size);
	}