MFC ADO连接Oracle12c数据库 类库文件

Posted 偶不是大叔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC ADO连接Oracle12c数据库 类库文件相关的知识,希望对你有一定的参考价值。

Stdafx.h

Stdafx.h

libado.h

libado.h

libado.cpp

libado.cpp

参考网址如下:http://www.cnblogs.com/livewithnorest/p/3316886.html

 

关于类库文件的使用如下(增删改的代码一开始不执行,也不报错只是卡死,程序直接不往下执行了,try catch都抓不到,急的不得了。然后不知道怎么搞的就又好了。可能是我vs重启编译过吧):

ado.init();
        ado.Connect(ado.Oracle);
        //--------查询示例 start--------
        std::string sql = "select * from username";
        adoreader = ado.ExecuteReader(sql);
        _variant_t  strz,value;
        CString stry;
        int nItem = 0;
        _RecordsetPtr m_recordSetPtr = adoreader.m_recordSetPtr;
        FieldsPtr flds = m_recordSetPtr->GetFields();//获取表的列的个数
        _variant_t Index;
        Index.vt = VT_I2;
        //--------动态添加头部标题 start--------
        //m_ListCtrl->InsertColumn(0,"序号",LVCFMT_LEFT,50);
        for (int i = 0;i<(int)flds->GetCount();i++)
        {
            Index.iVal = i;
            //m_ListCtrl->InsertColumn(i+1,(LPSTR)flds->GetItem(Index)->GetName(),LVCFMT_LEFT,100);
        }
        //--------动态添加头部标题 end--------
        //--------添加行数据 start--------
        while(m_recordSetPtr->adoEOF == FALSE)//m_pRecordset->adoEOF
        {
            stry.Format(_T("%d"),nItem+1);
            //m_ListCtrl->InsertItem(nItem,stry);
            for (int i = 0;i < (int)m_recordSetPtr->Fields->Count;i++)
            {
                Index.iVal = i;
                strz = flds->GetItem(Index)->GetName();
                value = m_recordSetPtr->GetCollect(strz);
                if (value.vt != VT_NULL)
                {
                    //m_ListCtrl->SetItemText(nItem,i+1,(LPCSTR)(_bstr_t)value);
                }
                else
                {
                    //m_ListCtrl->SetItemText(nItem,i+1,"");
                }
            }
            m_recordSetPtr->MoveNext();
            nItem++;
        }
        m_recordSetPtr->Close();
        adoreader.recordClose();
        //--------添加行数据 end --------
        //--------查询示例 end--------
//--------新增示例 start   --------
std::string sql = "insert into username(ID,NAME) values(\'4\',\'name4\')";
         int ret = 0;
        ret = ado.ExecuteNonQuery(sql);
        //--------新增示例 end   --------
        //--------编辑示例 start --------
        sql ="update username set name=\'namemax\' where id=\'4\'";
        ret = ado.ExecuteNonQuery(sql);
        //--------编辑示例 end   --------
        //--------删除示例 start --------
        sql ="delete from username where id=\'4\'";
        ret = ado.ExecuteNonQuery(sql);
        //--------删除示例 end   --------

 

以上是关于MFC ADO连接Oracle12c数据库 类库文件的主要内容,如果未能解决你的问题,请参考以下文章

猎豹MFC--CFile类家族介绍ADO连接数据库 打开数据库 关闭数据库 连接字符串

猎豹MFC--CFile类家族介绍ADO连接数据库 打开数据库 关闭数据库 连接字符串

基于ADO的远程Oracle连接

MFC中怎么连接SQL数据库

由于C#中ADO.NET对Oracle的命名空间引用时提示过时,为此想用Linq对数据库的连接等操作(见补充)

MFC怎么连接数据库