7,657
社区成员
发帖
与我相关
我的任务
分享
int CDBManager::GetRecordCount( enum DBMODE dbtype )
{
int count = 0;
CEOID oidRecord = 1;
WORD wNumProps = 0;
CEPROPVAL *pRecord = NULL;
DWORD dwBufSize = 0;
while ( oidRecord )
{
CeSeekDatabaseEx( m_hDB, CEDB_SEEK_BEGINNING, count, 0, 0 );
oidRecord = CeReadRecordPropsEx( m_hDB, CEDB_ALLOWREALLOC, &wNumProps, NULL, ( LPBYTE * )&pRecord, &dwBufSize, NULL );
if ( !oidRecord )
{
break;
}
count++;
}
return count;
}
BY_HANDLE_DB_INFORMATION bhdi;
memset(&bhdi, 0, sizeof(BY_HANDLE_DB_INFORMATION));
bhdi.wVersion = 2;
bhdi.guidVol = m_VolGUID;
bhdi.oidDbase = m_ceOid;
if (!CeGetDBInformationByHandle(m_hDB, &bhdi))
{
DWORD dd = GetLastError();
return 0;
}
return bhdi.infDatabase.dwNumRecords;
m_hDB = CeOpenDatabaseInSession( m_hSession,&m_VolGUID, &m_ceOid, CHATMSGDB, 0, 0, NULL);
//pStruct是我定义的一个结构,num是条数
for ( int i = 0; i < num; i++ )
{
CEPROPVAL myCepropval1[6];
myCepropval1[0].propid = PID_MID;
myCepropval1[0].wFlags = 0;
myCepropval1[0].wLenData = 0;
myCepropval1[0].val.lVal = pStruct[i].msgId;
myCepropval1[1].propid = PID_MSENDER;
myCepropval1[1].wFlags = 0;
myCepropval1[1].wLenData = 0;
myCepropval1[1].val.lpwstr = pStruct[i].msgSender;
myCepropval1[2].propid = PID_MRECIVER;
myCepropval1[2].wFlags = 0;
myCepropval1[2].wLenData = 0;
myCepropval1[2].val.lpwstr = pStruct[i].msgReciver;
myCepropval1[3].propid = PID_MCONTENT;
myCepropval1[3].wFlags = 0;
myCepropval1[3].wLenData = 0;
myCepropval1[3].val.lpwstr = pStruct[i].msgContent;
myCepropval1[4].propid = PID_MISREAD;
myCepropval1[4].wFlags = 0;
myCepropval1[4].wLenData = 0;
myCepropval1[4].val.boolVal = pStruct[i].msgIsRead;
myCepropval1[5].propid = PID_MRECIVETIME;
myCepropval1[5].wFlags = 0;
myCepropval1[5].wLenData = 0;
myCepropval1[5].val.filetime = pStruct[i].msgFileTime;
CeWriteRecordProps( m_hDB, 0, 6, myCepropval1 );