不多赘述,直接上代码
__declspec(dllexport) char* read(){
CString sql = L"select * from t";
try{
m_pRecordset.CreateInstance(L"ADODB.Recordset");
m_pRecordset->Open((_variant_t)sql, _variant_t((IDispatch*)m_pConnection, true), adOpenStatic, adLockOptimistic, adCmdText);
}catch (_com_error e){
CString errorMessage = e.ErrorMessage();
AfxMessageBox("读取数据时出错:" + sql + errorMessage);
}
CString ans = "查询结果:";
_variant_t vFirstName;
try{
while(!m_pRecordset->adoEOF){
vFirstName = m_pRecordset->GetCollect(L"id");
ans = ans + " " + (LPCTSTR)(_bstr_t)vFirstName.intVal;
m_pRecordset->MoveNext();
}
}catch(_com_error &e){
AfxMessageBox(e.Description());
}
int x = m_pRecordset->GetPageSize();
m_pRecordset->Close();
m_pRecordset = NULL;
USES_CONVERSION;
char* tmp = T2A(ans);
return tmp;
}
用数据库集合变量 依次将数据库里的每条记录读取出来
用字符串拼接的方式表示出来
有点类似迭代器