表中共有四列,想动态地把表中内容打印出来,先获取列名,再获取记录内容获取列名代码如下:CString Headstr;//列名字符串
for(long i=0;i<nColCount;i++)
{ Headstr.format("值为:%s",m_pRecordset->Fields->GetItem(_variant_t((long)i))->GetName());
AfxMessageBox(Headstr);
//这两句想看看用Headstr取出的列名是否正确,,结果显示为乱码!!为什么呢???? AfxMessageBox(m_pRecordset->Fields->GetItem(_variant_t((long)0))->GetName());
//这句可正常输出列名
}问题如代码中所示,,求高人解答,??、应该如何写呢???
for(long i=0;i<nColCount;i++)
{ Headstr.format("值为:%s",m_pRecordset->Fields->GetItem(_variant_t((long)i))->GetName());
AfxMessageBox(Headstr);
//这两句想看看用Headstr取出的列名是否正确,,结果显示为乱码!!为什么呢???? AfxMessageBox(m_pRecordset->Fields->GetItem(_variant_t((long)0))->GetName());
//这句可正常输出列名
}问题如代码中所示,,求高人解答,??、应该如何写呢???
解决方案 »
- 多线程服务器崩溃
- 送分题,解决一下,偷别人代码的心理障碍
- 怎样做一个共用数据类,从而使其它的类都可以使用此类成员函数和变量?
- 网页中超链接问题
- 请教在CTreeCtrl中用GetCount的问题?
- VC数据库编
- 给分:在OnPaint()中用TextOut()在一个基于对话框的窗体上写了几个字,怎样把它擦掉呢?
- 动态创建菜单的位置
- 如何编程实现检测系统是否安装了杀毒软件和防火墙,以及他们的版本信息等等
- char str[256] char *str = new char[256] char *str = "test" 三者有什么不同
- MFC中 EditBox 字体大小怎么更改!!!!!!!!!!!!
- 新手关于VC6.0 和VS2010 添加类成员函数 请教
GetItem(_variant_t((long)i))//这些写数组访问合适吗?
表中的列名分别为ID(integer)、username(string)、old(integer)、note(integer),所以我觉得GetName()的返回值应该是字符串CString类型的,对不对呢?
try{
m_pRecordset.CreateInstance("ADODB.Recordset");
m_pRecordset->Open("select * from 通讯录表",
_variant_t((IDispatch *)theApp.m_pConnection,
true),
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pRecordset->get_Fields(&pField);//获得字段集
long fldNum;
pField->get_Count(&fldNum);//获得字段的数目
BSTR bstrColName;
for(long i=0;i<fldNum;i++)
{
//获得字段名字
pField->Item[i]->get_Name(&bstrColName);
CString strfName=bstrColName;
//获得字段的类型
xxx::DataTypeEnum fType;
pField->Item[i]->get_Type(&fType);
int type=fType;
//获得字段的大小
long lSize;
pField->Item[i]->get_DefinedSize(&lSize);
}
pField->Release();
}
catch (_com_error *e) {
CString temp =e->ErrorMessage();
AfxMessageBox("读取数据库失败");
}