代码如下:
_ConnectionPtr m_connection.CreateInstance("ADODB.Connection"); /*创建连接对象*/
_RecordsetPtr m_set.CreateInstance("ADODB.Recordset"); /*创建记录集对象*/
_CommandPtr m_cmd.CreateInstance("ADODB.Command"); /*创建一个命令对象*/
/*连接数据库*/
m_connection->Open(L"Provider=SQLOLEDB,Data Source=YAN;Initial Catalog=pubs;User ID=sa;Password=123;",L"",L"",adOpenUnspecified); /*走到这里就出错.*/
打印出错误:-2146824582(800a0e7a) 未找到提供程序,该程序未能正确安装.
搞不懂了,我用MS SQL查询分析器是能用的,说明数据库正常啊,怎么就是连不上啊.
谁知道是那出问题了吗?
9 个解决方案
#1
用#import引入ADO库文件
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
BOOL CMyAdoTestApp::InitInstance()
{
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
BOOL CMyAdoTestApp::InitInstance()
{
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
#3
看过楼上推荐的文章,按那个连接字符串来写还是一样出错.
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="suppersoft";
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
m_connection->Open(_bstr_t(strSRC),L"",L"",adOpenUnspecified);
这次出错是提示,-2147467259(80004005)
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Sql Server 不存在或访问被拒绝.
但是我使用查询分析器用帐号:sa 密码123 是可以连接上的,
请谁给段正确的连接字符串代码.
我的环境是:vs7.0+ADO+MS Sql2000
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="suppersoft";
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
m_connection->Open(_bstr_t(strSRC),L"",L"",adOpenUnspecified);
这次出错是提示,-2147467259(80004005)
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Sql Server 不存在或访问被拒绝.
但是我使用查询分析器用帐号:sa 密码123 是可以连接上的,
请谁给段正确的连接字符串代码.
我的环境是:vs7.0+ADO+MS Sql2000
#4
#5
m_pConnection->Open("driver={SQL Server};Server=127.0.0.1;DATABASE=vckbase;UID=sa;PWD=139","","",adModeUnknown);
其中Server是SQL服务器的名称,DATABASE是库的名称
应该是你那服务器名称错了吧
其中Server是SQL服务器的名称,DATABASE是库的名称
应该是你那服务器名称错了吧
#6
看错了!!
#7
{SQL Server}这样试下
#8
m_connection->Open(L"Provider=SQLOLEDB;Data Source=YAN; //或者这里换成ip,本地可以用(local)
Initial Catalog=pubs;UID=sa;PWD=123;", L"", L"", adModeUnknown); /*走到这里就出错.*/
#9
改成这样成功:
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="127.0.0.1"; /*连接成功MS SQL2000*/
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="127.0.0.1"; /*连接成功MS SQL2000*/
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
#1
用#import引入ADO库文件
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
BOOL CMyAdoTestApp::InitInstance()
{
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
#import "c:\program files\common files\system\ado\msado15.dll"no_namespaces rename("EOF" adoEOF")
这行语句声明在工程中使用ADO,但不使用ADO的名字空间,并且为了避免常数冲突,将常数EOF改名为adoEOF。现在不需添加另外的头文件,就可以使用ADO接口了。
2、初始化OLE/COM库环境
必须注意的是,ADO库是一组COM动态库,这意味应用程序在调用ADO前,必须初始化OLE/COM库环境。在MFC应用程序里,一个比较好的方法是在应用程序主类的InitInstance成员函数里初始化OLE/COM库环境。
BOOL CMyAdoTestApp::InitInstance()
{
if(!AfxOleInit())//这就是初始化COM库
{
AfxMessageBox(“OLE初始化出错!”);
return FALSE;
}
#2
#3
看过楼上推荐的文章,按那个连接字符串来写还是一样出错.
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="suppersoft";
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
m_connection->Open(_bstr_t(strSRC),L"",L"",adOpenUnspecified);
这次出错是提示,-2147467259(80004005)
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Sql Server 不存在或访问被拒绝.
但是我使用查询分析器用帐号:sa 密码123 是可以连接上的,
请谁给段正确的连接字符串代码.
我的环境是:vs7.0+ADO+MS Sql2000
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="suppersoft";
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
m_connection->Open(_bstr_t(strSRC),L"",L"",adOpenUnspecified);
这次出错是提示,-2147467259(80004005)
[Microsoft][ODBC SQL Server Driver][DBNETLIB]Sql Server 不存在或访问被拒绝.
但是我使用查询分析器用帐号:sa 密码123 是可以连接上的,
请谁给段正确的连接字符串代码.
我的环境是:vs7.0+ADO+MS Sql2000
#4
#5
m_pConnection->Open("driver={SQL Server};Server=127.0.0.1;DATABASE=vckbase;UID=sa;PWD=139","","",adModeUnknown);
其中Server是SQL服务器的名称,DATABASE是库的名称
应该是你那服务器名称错了吧
其中Server是SQL服务器的名称,DATABASE是库的名称
应该是你那服务器名称错了吧
#6
看错了!!
#7
{SQL Server}这样试下
#8
m_connection->Open(L"Provider=SQLOLEDB;Data Source=YAN; //或者这里换成ip,本地可以用(local)
Initial Catalog=pubs;UID=sa;PWD=123;", L"", L"", adModeUnknown); /*走到这里就出错.*/
#9
改成这样成功:
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="127.0.0.1"; /*连接成功MS SQL2000*/
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";
CString strSRC;
strSRC="Driver=SQL Server;Server=";
strSRC+="127.0.0.1"; /*连接成功MS SQL2000*/
strSRC+=";Database=";
strSRC+="master";
strSRC+=";UID=SA;PWD=123";