admin管理员组文章数量:1794759
C++进行sql server数据库开发
下面使用ADO进行c++数据库开发
下面的每个小标题中代码都是不完整的,可能无法编译通过,只是分析,完整的代码会放在最后。
如果有什么地方有错误,请尽管指出来,十分感谢。
1.首先先创建一个C++的项目,Win32控制台应用。不要勾选空项目。
2.在stdafx.h中引入所需头文件,以及其他声明。
#include <windows.h> #include <stdlib.h> #import "C:/Program Files (x86)/Common Files/System/ado/msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "FirstOfFile")以上是包含windows的头文件,并且引入ado所需的dll文件,后面是不引用命 名空间,并且改变EOF和BOF的声明,防止冲突。
3.要成功使用ADO,需要先初始化COM,不然会出现ADO加载失败的错误,使用如下语句:
CoInitialize(NULL); //代码 CoUninitialize();4.连接数据库
首先定义全局的变量:
_ConnectionPtr pConnection;//连接指针 _CommandPtr pCmd;//命令指针 _RecordsetPtr pRecord;//结果集指针接下来就是连接数据库了
Data Source后面的是服务器的IP地址,因为是本机,所以就用了localhost; Initial Catalog后面的是数据库的名称; username是登陆的用户名,一般是sa,需要sql开启混合身份验证; password是sa的密码,
连接数据库命令:
bstr_t connectStr = "Provider=SQLOLEDB;Data Source=localhost;Initial Catalog=master;User ID=sa;Password=123456";5.执行sql语句
这里注释”执行查询”下面的一句就是主要的查询语句, sql是要执行的sql语句,也是_bstr_t类型的,我是函数传入的。 pRecord是结果集指针,用来保存select等语句的查询结果的,至于怎么使用,这篇不讨论,还在学习中,不怎么会用。
try { _variant_t vAffected; //执行查询 pRecord = pConnection->Execute(sql, &vAffected, adCmdText); //一样不要管DBRET那个东西。 return DBRET(1, "", pRecord); } catch (_com_error e) { return DBRET(0, (string)e.Description()); }6.关闭连接
这个pRecord->Close()是用来关闭结果集的,但是如果没有结果集,那么关闭会报错,虽然会被捕捉。
pConnection->Close()是关闭数据库连接的;如果没有连接数据库就关闭也会报错。
try { //关闭连接和结果集 //pRecord->Close(); pConnection->Close(); CoUninitialize(); return DBRET(1, ""); } catch (_com_error e) { return DBRET(0, (string)e.Description()); }完整代码见github:
github/Jimmy0117/cppLearning/tree/master/cpp/SQL
文章来源: www.ocrosoft/?p=1525
版权声明:本文标题:C++进行sql server数据库开发 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686656582a91330.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论