在 Win7 下 VS2005 中 VC 使用 ADO 连接数据库时字符集为非 Unicode ,连接代码如下:
CoInitialize(NULL); _ConnectionPtr pConn(__uuidof(Connection)); _RecordsetPtr pRst(__uuidof(Recordset)); pConn->ConnectionString="Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Password=123123;Initial Catalog=MyTest;Data Source=KANG-PC\SQL2005"; //需连接数据库: MyTest //服务器名: KANG-PC\SQL2005 //登陆用户: sa //登入密码: 123123 pConn->Open("","","",adConnectUnspecified);
连接字符串是在 VB 中利用 Microsoft Ado Data Control 控件中取得,并成功连接数据库.(记得在以前用 VC6.0 时候利用这个字符串就可以连接数据库了),可是这里出现错误.由 try catch 捕获到的错误信息:
未指定的错误 //由 e.ErrorMessage() 获得 012FEF78 //由 e.ErrorInfo() 获得 [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问。//由 e.Description() 获得
从你的错误信息推断:
1、你的initial catalog或者data source配置有误;
2、你的数据库实例配置有误。
个人认为第一种可能性居多,windows下提供有一个叫作dsn的连接文件方便测试数据库的连通性问题,你可以试试。