barry_di 2018-07-02 06:28 采纳率: 100%
浏览 1229
已结题

ado连接mssql _ConnectionPtr 对象执行CreateInstance()失败

try
{
HRESULT hr = m_pConnection.CreateInstance(__uuidof(Connection));
if(FAILED(hr))
{
initMsg.Format("创建_ConnectionPtr对象失败");
ShowAndWriteAlarmInfo(initMsg);
}
char buf[200];
memset(buf,0,200);
CString adoString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=" + m_szUser + ";password= " + m_szPassword + ";Initial Catalog="+m_szDBName+";Data Source=" + m_szIp + "," + m_szPort;
memcpy(buf,adoString,adoString.GetLength());
m_pConnection->ConnectionTimeout = 10;
m_pConnection->CommandTimeout = 5;
m_pConnection->Mode = adModeUnknown;
hr = m_pConnection->Open(buf, "", "", adModeUnknown);
if (SUCCEEDED(hr))
{
Msg.Format("数据库连接成功");
ShowAndWriteAlarmInfo(initMsg);
return TRUE;
}

}
catch(_com_error &e)

{

m_pConnection = NULL;
Msg.Format("无法连接数据库");
ShowAndWriteAlarmInfo(initMsg);
TRACE("Code = %0x\n", e.Error());
TRACE("Code meaning = %s\n", (char*) e.ErrorMessage());
TRACE("Source = %s\n", (char*) e.Source());
TRACE("Description = %s\n", (char*) e.Description());

    return FALSE;
}

打印错误信息:
Code = 80004003
Code meaning = 无效指针
Source = (null)
Description = (null)

而且有时候可以创建连接成功,有时候不行

  • 写回答

1条回答 默认 最新

  • qq_19316225 2018-07-02 06:33
    关注

    准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
    其他相关推荐
    ADO对象之Connection用法总结:
    vc 连接数据库CreateInstance失败问题
    ADO CreateInstance(__uuidof(Connection))失败
    C++ CreateInstance("ADODB.Connection");创建接口失败的解决方法
    ConnectionPtr _RecordsetPtr CreateInstance失败
    CreateInstance(
    _uuidof(Connection))执行失败的解决办法
    学习总结---ADO编程中_ConnectionPtr的open函数连接字符串
    使用_ConnectionPtr接口开发ACCESS数据库(4)
    CreateInstance(__uuidof(Connection)) 不支持此接口解决方法
    CreateInstance(_T("ADODB.Connection"))和CreateInstance(__uuidof(Connection))的区别

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 thinkphp6配合social login单点登录问题
  • ¥15 HFSS 中的 H 场图与 MATLAB 中绘制的 B1 场 部分对应不上
  • ¥15 如何在scanpy上做差异基因和通路富集?
  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch