关于 dbgril 与ado

本文介绍如何在VC6中使用DBGrid控件,并实现与数据库的动态连接。主要内容包括设置工程以启用ACTIVEX控件、与ADO进行连接的方法、以及如何在不同阶段初始化和关闭数据库连接。
最近开发需要用上 dbgril 也就是VC 6中 自带的那个微软的 控件 CDataGrid 。上网搜索了N + N 天,就是没一个入手的资料,郁闷,难道都是高手中的高手,可是我都没入门。MSDN 没有,帮助目录中也没有基本使用方法,走了很多弯路啊。终于搞定了入门,现在公布出来大家共享。 首先,要能正常使用这个 dbgril 你在建立工程的时候一定要勾上 使用 ACTIVEX 控件这项,否则死活就是不显示,连初始化都不行,我折腾了三天才明白(我有个开发习惯,用不上的东西,建立工程的时候全部都去掉),后来想想,真是傻了,这个不是MFC标准控件,唉。。。。浪费了无数脑细胞。 第二,与ADO的连接,网上有 N 多例子啊,全是连接mdb的,或者在函数内直接连接数据库。作为一个大型软件开发,肯定数据库在一开始就连接好了,全工程调用连接啊,哪有每个函数或者功能连接数据库啊。我一般都在 CXXXXAPP中 初始化的时候就连接后了数据库,经过我多次试验,翻阅了整个MSDN 和 ADO终于搞定连接。如下: 1,我在 BOOL CManageApp::InitInstance() 函数中,就定义和连接上了SQL数据库 _ConnectionPtr m_pConnection; 2,在对应使用DBGRIL 的类中,定义了连接 _RecordsetPtr m_pRecordset; 3,在构建该类中,初始化: m_pRecordset.CreateInstance(__uuidof(Recordset)); m_pRecordset->PutCursorLocation(adUseClient); /////这句非常重要,否则老提示没有什么bookmark 4,在需要的地方打开表并连接上 BSTR text; CString str="select * from t"; text= str.AllocSysString(); try { m_pRecordset->Open(text, // 查询DemoTable表中所有字段 theApp.m_pConnection.GetInterfacePtr(), // 获取库接库的IDispatch指针 adOpenDynamic, adLockOptimistic, adCmdText); ///////////////////////////////////////////// try { m_ctrlDG.SetRefDataSource((LPUNKNOWN)m_pRecordset->GetDataSource());////这句我折腾了很久才知道 } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); } /////////////////////////////////////////////// } catch(_com_error *e) { AfxMessageBox(e->ErrorMessage()); } ::SysFreeString(text);5,在解析该类的时候,关闭连接 m_pRecordset->Close(); m_pRecordset = NULL;好了,DBGRIL 动态连接数据库完毕,呵呵,其他用法,我正在研究,我也不会,不过,剩下的应该都比较简单了,入门了就水道渠成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值