::CoInitialize(NULL);
CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Post.mdb""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Post.mdb");
bool bRet = m_dataBase.Open(strConnect);
if (!bRet)
{
OutputDebugString("Error!\n");
return FALSE;
}
else
{
OutputDebugString("Success!\n");
} CString strSQL;
_variant_t var;
_RecordsetPtr pRecordset;
strSQL.Format("select * from PostData");
pRecordset = m_dataBase.OpenTbl(adCmdText,(char *)(LPCSTR)strSQL);
long nRows, nCols;
nCols = pRecordset->Fields->GetCount();
nRows = 0;
while (!pRecordset->adoEOF)
{
nRows++;
pRecordset->MoveNext();
}
//////////////////指定单元格的列宽//////////////////////////////
long nSize;
long nstrLen;
CString strFld;
BSTR bstrColName; for(long i = 0; i < nCols; i ++)
{
nSize = pRecordset->Fields->GetItem(i)->DefinedSize;
pRecordset->Fields->GetItem(i)->get_Name(&bstrColName);
strFld.Format("%s", bstrColName);
OutputDebugString(strFld);
}
为什么获取我的字段名 是乱码呢? 我的第一字段是 sp_id
CString strConnect = _T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Post.mdb""Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Post.mdb");
bool bRet = m_dataBase.Open(strConnect);
if (!bRet)
{
OutputDebugString("Error!\n");
return FALSE;
}
else
{
OutputDebugString("Success!\n");
} CString strSQL;
_variant_t var;
_RecordsetPtr pRecordset;
strSQL.Format("select * from PostData");
pRecordset = m_dataBase.OpenTbl(adCmdText,(char *)(LPCSTR)strSQL);
long nRows, nCols;
nCols = pRecordset->Fields->GetCount();
nRows = 0;
while (!pRecordset->adoEOF)
{
nRows++;
pRecordset->MoveNext();
}
//////////////////指定单元格的列宽//////////////////////////////
long nSize;
long nstrLen;
CString strFld;
BSTR bstrColName; for(long i = 0; i < nCols; i ++)
{
nSize = pRecordset->Fields->GetItem(i)->DefinedSize;
pRecordset->Fields->GetItem(i)->get_Name(&bstrColName);
strFld.Format("%s", bstrColName);
OutputDebugString(strFld);
}
为什么获取我的字段名 是乱码呢? 我的第一字段是 sp_id
pRecordset->Fields->GetItem(i)->getname();
我都试过了 就是都说乱码 谁有遇到过这个问题 回答下
高手帮忙下
OutputDebugString(strFld);
strFld.Format("3.%s\n", pRecordset->Fields->GetItem(i)->GetName());
OutputDebugString(strFld);
按理说应该是可以的 可是出来的就说乱码 郁闷
我的字段名是SP_ID
strFld.Format("3.%s\n", (LPCTSTR)pRecordset->Fields->GetItem(i)->GetName());
BSTR bstrColName; for(long i = 0; i < nCols; i ++)
{
nSize = pRecordset->Fields->GetItem(i)->DefinedSize;
pRecordset->Fields->GetItem(i)->get_Name(&bstrColName);
strFld.Format("%s", bstrColName);
OutputDebugString(strFld);
}这里可能有问题,BSTR里面的字符串是WCHAR字符串,也就是宽字节字符串,
你用_bstr_t类型代替BSTR看看,
_variant_t var;var = pRecordset->Fields->GetItem(i)->GetName();CString str = var.bstrVal;MessageBox(str);