VC++开发GIS系统(7)VC++使用ADO连接数据库
在之前的文章《利用ADO技术实现SQL Server存储二进制数据》中我介绍了一个ADO技术的实例,尽管提供了源代码,但是为了方便这里还是具体介绍下在ADO的使用中的一些细节,希望读者不要太烦。
总体来说ADO的操作可以分为3步,就像把大象装在冰箱中一样。
- 连接数据库
- 操作数据库
- 断开连接
今天分享的是连接数据库的方法。
1.引入ADO库文件
#import "C:\Program Files\common files\system\ado\msado15.dll" no_namespace rename("EOF","EndOfFile") rename("BOF","FirstOfFile")
这里要注意ADO文件的路径位置,一般情况下就是本文所用的路径,包括WIN764位系统。
关于这段语句,#import生成文件 msado15.tlh,默认是有namespace ADODB,所有内容都包在这个名字空间中。用了no_namespace则生成的头文件中没有namespace,所有内容是全局的。rename的意思就是重命名,rename("EOF","adoEOF")将EOF改名为adoEOF,是为了避免和C语言里的EOF重名。
2.初始化OLE/COM环境
::CoInitialize(NULL);// 初始化OLE/COM库环境
3.ADO连接SQLSERVER
代码如下
_ConnectionPtr m_pConnection; try { // 创建Connection对象 m_pConnection.CreateInstance("ADODB.Connection"); // 设置连接字符串,必须是BSTR型或者_bstr_t类型 _bstr_t strConnect="Provider=SQLOLEDB; Server=localhost; Database=你的数据库; uid=sa; pwd=你的密码;"; //m_pConnection->Open(strConnect,"","",adModeUnknown); m_pConnection->Open(strConnect,"","",NULL); if(m_pConnection!=NULL) { AfxMessageBox(_T("数据库连接成功")); } else { return -1; } } // 捕捉异常 catch(_com_error e) { // 显示错误信息 AfxMessageBox(e.Description()); }
最好把_ConnectionPtr m_pConnection; 的作用域定义的大一点,因为这个变量在操作数据库的操作是必不可少的。较为关键的是下面这句代码:
_bstr_t strConnect="Provider=SQLOLEDB; Server=localhost; Database=myado; uid=sa; pwd=你的密码;";
当然这里是用SA用户登陆,如果是用系统账户登陆的,可以用下面的连接代码
_bstr_t strConnect ="Provider=SQLOLEDB;Data Source=YQC-PC(你的用户名)\\SQLEXPRESS;Integrated Security=SSPI;Initial Catalog=你的数据库";
另外需要注意的是try和catch语句的使用,一定要使用try和catch语句,否则出了问题都无法调试,如果错误了就会返回类似R6010的错误,调试都不知道问题在哪里。
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。