MFC 用ADO方式连接SQL SERVER 2008连接不上

为了确认实在这里出错,我在“数据库连接失败”这几个字后加了Name,以区分其他错误
我想知道输入的服务器的计算机名对吗

"\"在C语言的作用忘记了?

如果数据库存放位置是本机,建议使用127.0.0.1

否则:如果是公网,则用域名,局域网则用IP

最好是将连接字串写在非EXE里,这样方便发布和修改数据库服务器位置、帐号密码

还有,vc中连通前,你应该在mssql管理器中尝试连接,如果在mssql管理器中都连接不能,则问题不出在VC中

case DATABASE_MSSQL:
strcpy_s(data,"Driver={SQL Server};");

strcat_s(data,"Server=");
strcat_s(data,addr);
if(addr[0]!='.')//如果服务器地址使用".",则不能加端口
{
strcat_s(data,",");
strcat_s(data,port);
}
strcat_s(data,";");
strcat_s(data,"UID=");
strcat_s(data,user);
strcat_s(data,";");
strcat_s(data,"PWD=");
strcat_s(data,pwd);
strcat_s(data,";");
if(strlen(database))
{
strcat_s(data,"Database=");
strcat_s(data,database);
strcat_s(data,";");
}
上面是连接字符串生成代码,下面是打开连接的函数
int CAdoDataBase::Open(const char* data)
{
int ret=0;
memset(m_strLogin,0,1024);
strcpy_s(m_strLogin,data);

this->Lock();
do 
{
try
{
m_pConnection.CreateInstance(__uuidof(Connection));
ret=m_pConnection->Open((_bstr_t)data,"","",adModeUnknown);
m_bFlag=TRUE;
ret=0;
}
catch (_com_error e) 
{
m_bFlag=FALSE;
strcpy_s(m_strErrCode,e.Description());
m_pConnection=NULL;
ret=-1;
}
} while (FALSE);
this->UnLock();
return ret;
}

温馨提示:内容为网友见解,仅供参考
无其他回答

MFC中使用ADO方式连接mssqlserver,有点小疑问请教!
1、感觉可以开个线程不停的访问master数据库之类的,什么时候访问出错,直接报错应该就可以了。总之思路就是开线程不停的执行sql语句。2、这个好像有点难度,除非你和com口连接的设备之间有明确协议。你发一个消息或者写入几个字节,设备收到后会给你回传数据,否则好像很难检测出来。

MFC中用ADO连接SQL数据库的一个程序(不是ACCESS数据库),到其他电脑上...
那你就要重新弄数据库了,数据库信息全部要一样-路径也要一样,(路径换也行,你可以在程序代码里改),但是数据源一定要一样啊- 你这个又不是连接的服务器,换了机子你自己的数据库信息都没了-

(求大侠相助)mfc中ado连接SQL SERVER数据库,执行Execute时出错!_百 ...
这么简单的sql语句当然没问题。_ConnectionPtr是智能指针,在析构时会自动释放。你这里pConn.Release(); 释放了,导致后面会重复释放出错。而且你还没关闭连接。try { CString strSQL = _T("select * from student");pConn->Execute(_bstr_t(strSQL),NULL,adCmdText);pConn->Close();AfxMessageBox(_...

c++ ADO 方式连接SQL2008 十分缓慢的问题
e->ErrorMessage()); return FALSE; }

VC中如何用ADO连接局域网SQL Server数据库
ADO库包含三个基本接口:_ConnectionPtr接口、_CommandPtr接口和_RecordsetPtr接口。_ConnectionPtr接口返回一个记录集或一个空指针。通常使用它来创建一个数据连接或执行一条不返回任何结果的SQL语句,如一个存储过程。使用_ConnectionPtr接口返回一个记录集不是一个好的使用方法。对于要返回记录的操作通常用_...

...利用ADO技术去访问SQL Server数据库中的表,现遇到一个控件问题,求助...
我给你说下我实现的过程。第一步:应用程序启动时自动加载在DATACOMBO控件显示,在窗体加载事件里写实现程序。第二步:双击DATACOMBO控件会出现一个选择后触发的事件,你在这个事件里写要在DATAGRID控件里显示对应学生的Grade表的程序,这个联表查询,再绑定数据源。不知道这个能否满足你的要求。

MFC中在有ado接口连接Access数据库时数据库可以连上,但是在访问表时出现...
_variant_t("first") 换成_bstr_t("first") ,不过这个可能性不大 或者可能是你没选数据库吧,要先选定数据库才能用里面的表 试试看

MFC ADO连接服务器的数据库,在自己电脑win7上可以连上,但是把软件放到...
win7的msado接口做了调整,在win7下生成的程序无法正常在winxp、2003等旧的系统中运行。建议使用winxp系统下编译生成。

ADO Oracle 连接不上
连不上你是在本地机器上连接还是在另外的客户端连接啊?如果是C\/S 模式在客户机上连接是不行的,你要把服务名指定出来,就是你主机的数据库服务名,或者指定IP地址

MFC采用ado方式连接Access数据库时,读出数据问题。
ErrorReport("数据库连接失败,确认Db1.mdb是否在当前路径下!");\/\/dlg->WriteLog( e.Description() );return 1;} \/\/ 创建记录集对象 m_pRecordset.CreateInstance(__uuidof(Recordset));\/\/ 取得表中的记录 \/\/读取配置信息 try { m_pRecordset->Open("select * from SystemCnfgInfo",m_...

相似回答