vs C++利用ado连接sqlserver2008实现一个查询功能
来源:互联网 发布:阿里云对普通人的用处 编辑:程序博客网 时间:2024/05/30 04:40
前段时间,正在学习怎样利用ado进行对sqlserver和oracle两种数据库进行连接,并进行简单的查询功能,当然重要的是进行连接的步骤和思想,下面进行一下说明:楼主只是在sqlserver2008上进行了实验,过几天在去实验一下oracle数据库。
我想用过ado的各位都会知道在stdafx.h中的头文件中加上这么一句代码:#import "C:\Program Files (x86)\Common Files\System\ado\msado15.dll" no_namespace rename("EOF","rsEOF") (这句代码是一行的,分行的话就要使用连接符哦!)这里说一下no_namespace,看字面就知道说明是没有命名空间,说明是全局标识,打个比方说一个大学里有两个名字是一样的,比方说都叫李三,这是如果不说明是哪个学院哪个系的哪个班的李三,别人就不知道你叫的是哪个李三,这是 就得加上前缀来区别,而no_namespace就不用这么麻烦,这里给A学院B系C班的李三加上这个,那么以后无论谁去叫李三,都会认为是叫A学院B系C班的李三,恩就是这么个意思,而rename("EOF","rsEOF")就是给EOF进行了重命名,因为文件的结束标志也是EOF,为了不搞错,就进行了重命名,命名为“rsEOF”,在stdafx.h头文件中加上了这么句代码之后,可以进行一次编译看是否通过,当然基本上是可以通过的。这句代码是要加在stdafx.h中比较靠后的位置。
这里利用简单的两个简单的控件说一下,新建一个MFC,在上面添加一个LIST BOX和一个按钮并命名为“查询”,在“查询”按钮上双击进入生成的函数中编写代码代码如下:
/*OLEDB是基于COM技术编写的,而ado又是基于OLEDB基础之上,它是一个OLEDB的用户程序,ado本身也是一个com组件,而我们在访问COM组件的时候,需要先初始化一个COM库,初始化的函数利用CoInitialize(LPVOID pvReserved)这个参数是一个保留参数,因此将其设置为NULL就可以了,访问完之后,可以利用CoUninitialize()来卸载COM库*/
CoInitialize(NULL); //初始化COM库
_ConnectionPtr pConn(_uuidof(Connection));//智能指针类定义的对象
_RecordsetPtr rst(_uuidof(Recordset));
pConn->ConnectionString="Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa; Initial Catalog=bookstore";//连接字串(最后一个是数据库的名称)(连接字串可以用vb获得,具体方法见我的另一个博客)
pConn->Open("","","",adConnectUnspecified);//open函数可以参照msdn
rst=pConn->Execute("select * from book",NULL,adCmdText);
/*adCmdText:命令文本的类型(如果使用Recordset智能指针的话可以将此行代码改为:rst->Open("select * from book",_variant_t((IDispatch*)pConn),adOpenDynamic,adLockOptimistic,adCmdText); )*/
while (!rst->rsEOF)
{
((CListBox*)GetDlgItem(IDC_LIST1))->AddString(
(_bstr_t)rst->GetCollect("bookname"));
rst->MoveNext();
}
rst->Close();
pConn->Close();
// rst->Release();
// pConn->Release();
CoUninitialize();
运行结果
http://img.blog.csdn.net/20140804161126536?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanhxanh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" _xhe_src="http://img.blog.csdn.net/20140804161126536?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanhxanh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"/>
- vs C++利用ado连接sqlserver2008实现一个查询功能
- VS利用ADO连接数据库的操作
- VS2008连接Sqlserver2008 - ADO方式
- CSharp 使用ADO连接 SQLServer2008
- 在VS下用C语言连接SQLServer2008
- MFC(VS2008)通过ADO连接SQLSERVER2008
- Sqlserver2008 远程连接数据库查询
- C#中利用ADO.NET连接和查询SQL数据库
- 利用ADO连接数据库
- 利用ADO连接数据库
- C#ADO连接修改Paradox表时“操作必须使用一个可更新的查询”错误的处理办法
- 利用ReportExecutionService.FindString实现查询功能
- 利用存储过程实现查询功能
- vc6.0 ado 连接SQLserver2008详细步骤和代码
- delphi7 ADO 方式连接 sqlserver2008/2005 简单应用
- 利用native SQL实现外连接查询
- 利用linux下的c语言编程来简单的实现一个shell功能实现!
- jdbc 连接oracle 并实现查询功能
- 0085 Eclipse上GIT插件EGIT使用手册【基础】
- 研大考研不是骗子:2015考研政治暑期复习提升效率
- [BestCoder Round #3] hdu 4907 Task schedule (模拟简单题)
- 使用spring web.xml里的配置 - 请求处理器DispatcherServlet
- idea 12 java web 项目报java.lang.ClassNotFoundException
- vs C++利用ado连接sqlserver2008实现一个查询功能
- ——String类,StringBuffer类,StringBuilder类的简述和操作。
- js特殊例子--方法内重新定义了变量在后面就会前面的为undifined,后面没有定义就用全局的--各种专业文献上的“闭包”(closure)定义非常抽象,很难看懂。我的理解是,闭包就是能够读取其他函
- tomcat用于加载项目的.xml文件配置
- 111_一键清理缓存
- 文件操作(NSFileManager)
- discuz 后台导出用户信息包含邮件信息
- Java学习之道:Java上传下载excel、解析Excel、生成Excel的问题
- linux源代码分析和阅读工具比较