vc 程序 中 如何 用ado 连接 sql server 2005? 首先说明一点:vc 程序 中用ado 连接 sql server 2005 和 连接 sql server 2000的语句和 连接 字符串是完全一样的,下面的代码适用于两个数据库的 连接 。 另一点说明:如果你以前安装过sql server 2000,后在
vc 程序中如何用ado连接sql server 2005?
首先说明一点:vc程序中用ado连接sql server 2005 和连接 sql server 2000的语句和连接字符串是完全一样的,下面的代码适用于两个数据库的连接。
另一点说明:如果你以前安装过sql server 2000,后在没有卸载的情况下又安装了2005,那么你之前在2000中设置的用户名和密码在2005中会保持,即使你安装2005时未设置任何用户名和密码。
下面是vc程序中用ado连接sql server数据库的一个例子:
(1)创建一个基于对话框的工程,工程名为test。
(2)在stdafx.h中导入ado动态链接库,代码如下:
#import c:\program files\common files\system\ado\msado15.dll no_namespace\
rename(eof,adoeof)
(3)在ctestapp::initinstance()中初始化com环境:
::coinitialize(null);
注意,这条语句一定要放在“ctestdlg dlg;”这条语句的前面,否则在ctestdlg的函数中连接数据库会因无法创建连接实例而失
败。
(4)在对话框的头文件中声明ado智能指针。
_connectionptr m_pconnection; //连接对象指针
_recordsetptr m_precordset; //记录集对象指针
(5)在ctestdlg::oninitdialog()中连接数据库:
try
{
m_pconnection.createinstance(adodb.connection); //创建连接对象实例
_bstr_t strconnect=provider=sqloledb.1;persist security info=false;initial catalog=query;
data source=127.0.0.1; //连接字符串,这里query是数据库名,127.0.0.1代表本地主机
m_pconnection->open(strconnect,sa,sa,admodeunknown); //打开数据库
}
catch (_com_error e) //捕捉错误
{
afxmessagebox(e.errormessage()); //弹出错误
}
在打开数据库的这条语句中,第一个sa代表用户名,第二个sa代表密码。