首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

施用ADO连接SQLServer2008出错!

2013-09-05 
使用ADO连接SQLServer2008出错!!!!代码如下hrm_pConnection.CreateInstance(ADODB.Connection)if(SUCC

使用ADO连接SQLServer2008出错!!!!
代码如下
hr=m_pConnection.CreateInstance("ADODB.Connection");
if(SUCCEEDED(hr))
{
_bstr_t strConnect = "Provider=SQLOLEDB.1;Password=;Persist Security Info=True;User ID=sa;Initial Catalog=student;Data Source=192.168.0.103";
m_pConnection->Open((_bstr_t)strConnect,"","",adModeUnknown);

}
if(m_pConnection->State)
MessageBox(NULL,L"服务器连接成功",L"",MB_OK);
else
MessageBox(NULL,L"服务器连接失败",L"",MB_OK);
}
catch(_com_error e)
{
MessageBox(NULL,e.ErrorMessage(),L"",MB_OK);
ExitConnect();
}


好像是strConnect错误,提示未指定错误,试了网上好多方法都无效,不是未指定错误就是Idispatch #3164

已经搞了一天了,求大神解救啊啊!!! SQL?Server 服务器
[解决办法]
先确定:sql server 配置管理器里面的tcp/ip,named piped,sql browser服务开启了,然后确认一下你用这个配置手动登录sqlserver是否成功。如果都可以了,网上那些连接字符串你找一个对着来改。
[解决办法]
--#1.先用企业管理器连下试试:实例:192.168.0.103;用户名:sa;密码:空
--#2.如果#1可以,修改一下密码为:1q2w3e4R,再试
--#3.如果还不行,修改连接串。从网上找一下。
[解决办法]
前段时间刚好也用这个连,首先1楼说的必要的服务是一定要开启的,然后附上部分关键代码:
#import "C:\\Program Files\\Common Files\\System\\ado\\msado15.dll" no_namespace rename("EOF","EndOfFile")

_bstr_t strConnect="driver={SQL Server};server=192.168.*.*;Database=testDataBase;uid=sa;pwd=***";
::CoInitialize(NULL);
_ConnectionPtr m_pConnection(__uuidof(Connection));
_RecordsetPtr m_pRecordset(__uuidof(Recordset));//初始化指针

if(FAILED(m_pConnection.CreateInstance(__uuidof(Connection))))
{
printf("创建Connection对象时出错\n");
}
if(FAILED(m_pRecordset.CreateInstance(__uuidof(Recordset))))
{
printf("创建Recordset对象时出错\n");
}

try
{
QueryPerformanceCounter(&beginTime);
m_pConnection->Open(strConnect,"","",adModeUnknown);//连接数据库
QueryPerformanceCounter(&endTime);
time = (double)(endTime.QuadPart-beginTime.QuadPart)/(double)freq.QuadPart;
printf("连接数据库时间:%f\n",time);
}catch(_com_error e)
{
printf("连接数据库时出错\n");
}
try
{
m_pRecordset->Open(_variant_t("student"),_variant_t((IDispatch *)m_pConnection),adOpenKeyset,adLockOptimistic,adCmdTable);


}catch(_com_error e)
{
printf("无法打开表student\n");
}
Recordset是因为我要执行select查询语句而初始化的,不用的话可以不要。在vs2010敲的时候先编译了一下第一句,再往下敲。ADO是也可以通过ODBC数据源连接,如果通过ODBC,这里_bstr_t strConnect要改一下。我这里是没用ODBC。
[解决办法]
你的动态端口是55511,把它留空,保存。再试
或者你直接改字符串:"driver={SQL Server};server=192.168.1.10,55511;Database=testDataBase;uid=sa;pwd=***"

热点排行