关于ADO2连接SQL2008。解决办法
关于ADO2连接SQL2008。
之前做项目用的MYSQL,客户喜欢MSSQL,所以要换成SQL2008。
之前用ADO2连接数据库。本以为改一下连接字串就KO。谁知不行。杯具啊。
那个大牛帮我看看那里有问题啊!或者告诉我该怎么解决啊!
Ado2版本
连接字串
查询
用try获得的错误提示
CADORecordset Error
Code = 80040e37
Code meaning = IDispatch error #3127
Source = Microsoft OLE DB Provider for SQL Server
Description = 对象名 'Client' 无效
但表确实已经建立了,而且是有数据的。
------解决方案--------------------
强烈建议用Ado助手调试一下。下面是调试通过的strConnection
("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=PersonManager;Data Source=KISSTEA-PC\\SQLEXPRESS","","",adModeUnknown)
------解决方案--------------------
SQL sever你要先配一下那个权限啊
也有点小复杂
------解决方案--------------------
你的sql语句看是否可以在数据库中执行
------解决方案--------------------
你很热心,但从LZ描述,应不是用户权限问题
LZ用了sa用户,应该没问题,
报了“对象名 'Client' 无效”,Connection是Open成功的
问题在于连接字符串,
database=XX;和Initial Catalog=MSSQL;重复了
而且Initial Catalog=MSSQL;可能指定了一个错误的数据库名
可改为Initial Catalog=XX; (XX和database=XX的XX一样的值),删掉database=XX;
或者删掉Initial Catalog=MSSQL;
------解决方案--------------------
strConnection.Format(_T("Provider=SQLOLEDB.1;\
Data Source=LBWIN7\\SQLEXPRESS;\
database=XX;\
Persist Security Info=False;\
Initial Catalog=MSSQL;\
uid=sa;\
pwd=XX"));
楼主你的字符串错了。
database
和initial catalog 都是指数据库的。
------解决方案--------------------
我后来又仔细看了一下他的字串,发现是用的express版的
这个Initial Catalog后面是要接他要连的数据库的,这里应该有点问题
之前做项目用的MYSQL,客户喜欢MSSQL,所以要换成SQL2008。
之前用ADO2连接数据库。本以为改一下连接字串就KO。谁知不行。杯具啊。
那个大牛帮我看看那里有问题啊!或者告诉我该怎么解决啊!
Ado2版本
//
// MODULE: Ado2.h
//
// AUTHOR: Carlos Antollini
//
// mailto: cantollini@hotmail.com
//
// Date: 07/02/2003
//
// Version 2.10
//
连接字串
strConnection.Format(_T("Provider=SQLOLEDB.1;\
Data Source=LBWIN7\\SQLEXPRESS;\
database=XX;\
Persist Security Info=False;\
Initial Catalog=MSSQL;\
uid=sa;\
pwd=XX"));
查询
m_strSQL.Format(
_T("select client_id as id,\
client_name as name,\
client_address as address,\
client_country as country,\
client_region as region,\
client_city as city\
from Client"));
用try获得的错误提示
CADORecordset Error
Code = 80040e37
Code meaning = IDispatch error #3127
Source = Microsoft OLE DB Provider for SQL Server
Description = 对象名 'Client' 无效
但表确实已经建立了,而且是有数据的。
------解决方案--------------------
强烈建议用Ado助手调试一下。下面是调试通过的strConnection
("Provider=SQLOLEDB.1;Password=123456;Persist Security Info=True;User ID=sa;Initial Catalog=PersonManager;Data Source=KISSTEA-PC\\SQLEXPRESS","","",adModeUnknown)
------解决方案--------------------
SQL sever你要先配一下那个权限啊
也有点小复杂
------解决方案--------------------
你的sql语句看是否可以在数据库中执行
------解决方案--------------------
你很热心,但从LZ描述,应不是用户权限问题
LZ用了sa用户,应该没问题,
报了“对象名 'Client' 无效”,Connection是Open成功的
问题在于连接字符串,
database=XX;和Initial Catalog=MSSQL;重复了
而且Initial Catalog=MSSQL;可能指定了一个错误的数据库名
可改为Initial Catalog=XX; (XX和database=XX的XX一样的值),删掉database=XX;
或者删掉Initial Catalog=MSSQL;
------解决方案--------------------
strConnection.Format(_T("Provider=SQLOLEDB.1;\
Data Source=LBWIN7\\SQLEXPRESS;\
database=XX;\
Persist Security Info=False;\
Initial Catalog=MSSQL;\
uid=sa;\
pwd=XX"));
楼主你的字符串错了。
database
和initial catalog 都是指数据库的。
------解决方案--------------------
我后来又仔细看了一下他的字串,发现是用的express版的
这个Initial Catalog后面是要接他要连的数据库的,这里应该有点问题