16,548
社区成员




sqlite3* db;
char **dbResult;
int result;
char *errmsg=NULL;
//GetReadLock(sqliteRWLock);
result = sqlite3_open("D:\\database\\MBIS_DTMB_CenterServer.db",&db); //连接数据库
if(result!=SQLITE_OK)
{
MessageBox(L"连接数据库失败");
sqlite3_close(db);
//ReleaseRWLock(sqliteRWLock);
::CoUninitialize();
}
const char *str="SELECT * FROM MBIS_DTMB_Status";
int nRow,nColumn;
int AllCode=100;
do
{
result = sqlite3_get_table(db,str,&dbResult,&nRow,&nColumn,&errmsg);//查询数据,并将数据存放在dbResult
if(result==SQLITE_BUSY)
{
Sleep(100);
AllCode--;
if(AllCode==0)
{
MessageBox(L"操作数据库失败",L"说明",MB_OK);
sqlite3_close(db);
//ReleaseRWLock(sqliteRWLock);
sqlite3_free(errmsg);
::CoUninitialize();
return ;
}
}
} while (result==SQLITE_BUSY);
CListCtrl* pmyListCtrl = (CListCtrl*)GetDlgItem(IDC_LIST1);
LONG lStyle;
lStyle = GetWindowLong(C_listlog.m_hWnd, GWL_STYLE);//获取当前窗口style
lStyle &= ~LVS_TYPEMASK; //清除显示方式位
lStyle |= LVS_REPORT; //设置style
SetWindowLong(C_listlog.m_hWnd, GWL_STYLE, lStyle);//设置style
DWORD dwStyle = C_listlog.GetExtendedStyle();
dwStyle |= LVS_EX_FULLROWSELECT;//选中某行使整行高亮(只适用与report风格的listctrl)
dwStyle |= LVS_EX_GRIDLINES;//网格线(只适用与report风格的listctrl)
CString str2; //显示数据库中的内容
for(int h=1;h<=nRow;h++)
{
for(int l=0;l<nColumn;l++)
{
str2=UTF8ToUnicode(dbResult[h*nColumn+l]);
if(l==0)
{
C_listlog.InsertItem(h-1,str2);
}
else
{
C_listlog.SetItemText(h-1,l,str2);
}
}
}
sqlite3_free_table(dbResult);
sqlite3_close(db);
//ReleaseRWLock(sqliteRWLock);
::CoUninitialize();