Stdafx.hhtml
libado.hsql
libado.cppspa
參考網址以下:http://www.cnblogs.com/livewithnorest/p/3316886.htmlrest
關於類庫文件的使用以下(增刪改的代碼一開始不執行,也不報錯只是卡死,程序直接不往下執行了,try catch都抓不到,急的不得了。而後不知道怎麼搞的就又好了。多是我vs重啓編譯過吧):code
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 --------