谁能帮我看看为什么CEDB数据库总是打开失败呀?
TCHAR buftime[MAX_PATH]=TEXT("\n");
TCHAR bufevent[MAX_PATH]=TEXT("\n");
TCHAR bufcosts[MAX_PATH]=TEXT("\n");
HANDLE hopenDB;
CEGUID m_Ceguid;
CEOID m_CeOid;
LONG OnAdd(HWND hDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
LVITEM lvI;
int index;
lvI.mask = LVIF_TEXT | LVIF_IMAGE | LVIF_PARAM | LVIF_STATE;
lvI.state = 0;
lvI.stateMask = 0;
TCHAR numBuf[MAX_PATH];
for (index = 0; index < 1; index++)
{
lvI.iItem = index;
lvI.iSubItem = 0;
lvI.iImage = index;
Edit_GetText(GetDlgItem(hDlg,IDCTIME),buftime,32);
LONG time = _wtoi(buftime); //把字符串转成整数;
Edit_GetText(GetDlgItem(hDlg,IDC_EVENT),bufevent,32);
Edit_GetText(GetDlgItem(hDlg,IDC_COSTS),bufcosts,32);
wsprintf(numBuf,TEXT("%d"),time);
lvI.pszText = numBuf;
int p = ListView_InsertItem(hWndList,&lvI);
int iSubItem = 1;
ListView_SetItemText(hWndList,p,iSubItem++,bufevent);
ListView_SetItemText(hWndList,p,iSubItem++,bufcosts);
RECORD_DEBT rec_debt;
rec_debt.DATE = time;
wcscpy(rec_debt.EVENT,LPCTSTR(bufevent));
wcscpy(rec_debt.COSTS,LPCTSTR(bufcosts));
AddRecord(rec_debt);
}
return TRUE;
}
//添加记录函数;
BOOL AddRecord(RECORD_DEBT debt_record)
{
CEOID Ceoid;
PCEPROPVAL propvals = NULL;
propvals = new CEPROPVAL[3];
memset(propvals,0,sizeof(propvals));
//记录的Date;
propvals->propid = ID_DATE;
propvals->val.lVal = debt_record.DATE;
propvals++;
//记录的Event;
propvals->propid = ID_EVENT;
propvals->val.lpwstr = debt_record.EVENT;
propvals++;
//记录的Costs;
propvals->propid = ID_COSTS;
propvals->val.lpwstr = debt_record.COSTS;
propvals -=2;
Ceoid = CeWriteRecordProps(hopenDB,0,3,propvals);
if (Ceoid == 0)
{
//写入失败;
if(GetLastError() == ERROR_INVALID_PARAMETER)
{
return FALSE;
}
}
else
{
//写入成功;
return TRUE;
}
}