您的位置:首页 > 编程语言 > C语言/C++

vs C++利用ado连接sqlserver2008实现一个查询功能

2014-08-04 15:00 190 查看
前段时间,正在学习怎样利用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();

运行结果

https://img-blog.csdn.net/20140804161126536?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanhxanh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" _xhe_src="https://img-blog.csdn.net/20140804161126536?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvanhxanh6/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center"/>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ sqlserver mfc vs
相关文章推荐