找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 515|回复: 2

[求助]:编译通过,运行出错!

[复制链接]
发表于 2003-4-4 19:06:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
我在我的ARX程序里加入数据库模块,编译通过,运行出错:不支持此接口!
其中出错代码如下:
HRESULT hr;
hr = m_pConnection.CreateInstance("ADODB.Connection"); //运行出错
//hr 的值为0

麻烦各位高手给帮帮忙!谢谢!!!
fjznz@163.com
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
发表于 2003-4-8 16:37:51 | 显示全部楼层
_ConnectionPtr m_pTestConet;
        _RecordsetPtr m_pRecSet;

。。。


m_pTestConet.CreateInstance(__uuidof(Connection));
        try                 
        {       
                m_pTestConet->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:\\bracket\\bracket.mdb","","",adModeUnknown);
        }
        catch(_com_error e)
        {
                         。。。。
                return FALSE;
        }
        m_pRecSet.CreateInstance(__uuidof(Recordset));
        m_pRecSet->Open("SELECT * FROM ブラヶツト",m_pTestConet.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
        m_pRecSet->MoveFirst();
......

实用程序。请参考。
你应该多贴几行代码,一行别人怎么知道什么问题。
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2003-4-15 11:45:39 | 显示全部楼层
我的原代码:


BOOL MyMfc::OnInitDialog()
{
        SetDialogName("MyMfcSample:MyMfc");        

        CAcUiDialog::OnInitDialog();   

        // 初始化COM,创建ADO连接等操作
        AfxOleInit();

        _ConnectionPtr        m_pConnection;
        _RecordsetPtr        m_pRecordset;   

        CString strErrorMessage;
        HRESULT hr;

        try                 
        {         
                hr = m_pConnection.CreateInstance("ADODB.Connection");
                if (SUCCEEDED(hr))
                {
                        hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=ValueDb.mdb","","",adModeUnknown);///连接数据库
                }
        }

        catch(_com_error e)
        {
                strErrorMessage.Format("连接数据库失败,确认数据库 ValueDb.mdb 是否在当前路径下!\r\n错误信息:%s",e.ErrorMessage());
                AfxMessageBox(strErrorMessage);///显示错误信息
                return false;
        }
       
        // 使用ADO创建数据库记录集
        try
        {
                hr = m_pRecordset.CreateInstance("ADODB.Recordset");
        }

        catch(_com_error e)
        {
                strErrorMessage.Format("连接数据库失败!\r\n错误信息:%s",e.ErrorMessage());
                AfxMessageBox(strErrorMessage);///显示错误信息
                return false;
        }

        try
        {
                m_pRecordset->Open("SELECT * FROM Values", m_pConnection.GetInterfacePtr(), adOpenStatic,adLockOptimistic,adCmdText);
        }

        catch(_com_error e)
        {
                strErrorMessage.Format("读取数据库记录失败!\r\n错误信息:%s",e.ErrorMessage());
                AfxMessageBox(strErrorMessage);///显示错误信息
                return false;
        }

       
        _variant_t var;
        CString strName,strValues;

        // 清空列表框
        m_AccessList.ResetContent();
        strName=strValues="";

        try
        {
                if(!m_pRecordset->BOF)
                        m_pRecordset->MoveFirst();
                else
                {
                        AfxMessageBox("表内数据为空");
                        return false;
                }

                // 读入库中各字段并加入列表框中
                while(!m_pRecordset->adoEOF)
                {
                        var = m_pRecordset->GetCollect("ValuesName");
                        if(var.vt != VT_NULL)
                                strName = (LPCSTR)_bstr_t(var);
                        var = m_pRecordset->GetCollect("Values");
                        if(var.vt != VT_NULL)
                                strValues = (LPCSTR)_bstr_t(var);

                        m_AccessList.AddString( strName + " --> "+strValues );

                        m_pRecordset->MoveNext();
                }

                // 默认列表指向第一项,同时移动记录指针并显示
                m_AccessList.SetCurSel(0);
        }
        catch(_com_error e)
        {
                strErrorMessage.Format("读取数据库记录失败!\r\n错误信息:%s",e.ErrorMessage());
                AfxMessageBox(strErrorMessage);///显示错误信息
                return false;
        }
       
        return TRUE;  // return TRUE unless you set the focus to a control
}
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 01:37 , Processed in 0.361557 second(s), 35 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表