用ADO编制SQLPlus程序
2008-04-19 20:28:01 来源:WEB开发网四、"select"操作的处理:
首先得到所有的字段名作为列表的标题,然后再显示每一条记录。
listTable.ShowWindow (SW_SHOW);
listTable.DeleteAllItems();
int nColumnCount = listTable.GetHeaderCtrl()->GetItemCount();
// 删除所有的列
for (i=0;i < nColumnCount;i++)
{
listTable.DeleteColumn (0);
}
int fieldCount=Rsc->Fields ->Count; //得到字段的总数
int fieldLength = 0;
FieldPtr m_fieldCtl;
for(i=0;i<fieldCount;i++)
{
m_fieldCtl = Rsc->Fields ->GetItem(long(i)); //得到字段名
fieldLength = m_fieldCtl->DefinedSize*10;
if (fieldLength >500) //when field is very long then trim it
{
fieldLength = 500;
}
else if (fieldLength < 50)
{
fieldLength = 50;
}
if (fieldLength<m_fieldCtl->Name.length ()*12)
{
fieldLength = m_fieldCtl->Name.length ()*12;
}
listTable.InsertColumn(i,m_fieldCtl->Name,LVCFMT_LEFT,fieldLength);
}
int nItem = 0;
_variant_t varValue;
_bstr_t bstrValue;
while(!Rsc->adoEOF)
{
m_fieldCtl = Rsc->Fields ->GetItem(long(0)); //得到字段的值
varValue = m_fieldCtl->Value;
if (varValue.vt == VT_NULL) //注意:当值为空时,直接插入会导致异常
{
bstrValue = "";
}
else
{
bstrValue=varValue;
}
nItem=listTable.InsertItem(0xffff,bstrValue); //fisrt value
for(i=1;i<fieldCount;i++) //next all value
{
m_fieldCtl = Rsc->Fields ->GetItem(long(i));
varValue = m_fieldCtl->Value;
if (varValue.vt == VT_NULL)
{
bstrValue = "";
}
else
{
bstrValue=varValue;
}
listTable.SetItem(nItem,i,1,bstrValue,NULL,0,0,0);
}
Rsc->MoveNext ();
}
五、其它
其它的就是一些和界面显示有关的内容,和ADO关系不大,在此就不做介绍了。有兴趣的朋友可以直接看代码。
如果还有什么疑问,请直接和我联系,非常希望和各位朋友一起探讨,共同进步。
- ››sqlplus管理员身份登录oracle
- ››Adobe推出用于iOS设备创建PDF文件的应用
- ››Adobe发布Acrobat X 不支持苹果iOS系统
- ››Adobe公司展示plenoptic lenses技术
- ››Adobe:移动版Flash实测性能高于HTML5视频
- ››Adobe更新Web版Photoshop 无需注册即可使用
- ››Adobe Flash 10.1被曝支持Android效果不佳
- ››Adobe Flash 10.1 for Android 版本被曝工作状况不...
- ››Adobe CEO:不担心iPhone和iPad封Flash技术
- ››Adobe为iPad、Android平台发布免费Photoshop
- ››Adobe发布Android版Flash 10.1 Beta 3
- ››ADO VC++ Extensions入门
更多精彩
赞助商链接