zoukankan      html  css  js  c++  java
  • 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   --------
  • 相关阅读:
    Python 面向对象(一)
    【Python之搜索引擎】(一)概述
    【Python】回文palindrome——利用字符串反转
    【Python】raw转义字符
    【Python】directory字典类型
    【Python】面向对象编程思想
    【Python】Sublime text 3 搭建Python IDE
    【Python】卸载完Python3 之后 Python2 无法打开IDLE
    【Python】猜数小游戏(文件操作)
    【Python】list和tuple 区别比较
  • 原文地址:https://www.cnblogs.com/fuge/p/5341999.html
Copyright © 2011-2022 走看看