关于vc++访问sql2000的一个问题

来源:百度知道 编辑:UC知道 时间:2024/09/28 08:12:09
有这样一段连接数据库的代码
#import "c:\program Files\Common Files\System\ado\msado15.dll" no_namespace
_ConnectionPtr m_pConnection;

::CoInitialize(NULL);
try
{
m_pConnection.CreateInstance("ADOConn.Recordset");
_bstr_t strConnect="Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=图书馆管理数据库;";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(e.Description());
}
请问这样的代码有没有问题,需要include什么库文件吗,CreateInstance()函数可以带哪些参数,参数都代表什么意思?

解释:
1: ::CoInitialize(NULL);
// COM 初始化,如果是MFC程序,可以使用AfxOleInit()替代
2: ::CoUninitialize();
// COM 释放,如果使用 AfxOleInit(),则不调用该函数
3: #import "c:\program Files\Common Files\System\ado\msado15.dll" no_namespace
//引入msado15.dll库文件,之后就可以使用ADO方法对数据库进行操作了
4: CreateInstance()
//对连接对象和结果集对象执行CreateInstance方法,从而创建这两个对象的实例,实例创建成功以后,就可以调用对象的Open方法了。
5: 或者CreateInstance(__uuidof(Connection))

这是COM的知识,看看微软的COM技术内幕就清楚了

这些就照书上搬就好了。别在乎这些。应该注重代码的操作。谢谢!

没问题。CreateInstance就按你那样写