VC實(shí)現(xiàn)ODBC數(shù)據(jù)庫(kù)操作實(shí)例解析
本文以VC實(shí)例介紹了實(shí)現(xiàn)數(shù)據(jù)庫(kù)操作的各種方法,包括打開(kāi)數(shù)據(jù)庫(kù)、關(guān)聯(lián)記錄集、讀取Excel數(shù)據(jù)、執(zhí)行SQL查詢(xún)、創(chuàng)建存取字符串等,相信對(duì)于初學(xué)VC的朋友有一定的參考價(jià)值,主要功能代碼如下:
//打開(kāi)數(shù)據(jù)庫(kù)
CDatabase database;
database.OpenEx( _T( "DSN=zhuxue" ),CDatabase::noOdbcDialog);//zhuxue為數(shù)據(jù)源名稱(chēng)
//關(guān)聯(lián)記錄集
CRecordset recset(&database);
//查詢(xún)記錄
CString sSql1="";
sSql1 = "SELECT * FROM tablename" ;
recset.Open(CRecordset::forwardOnly, sSql1, CRecordset::readOnly);
int ti=0;
CDBVariant var;//var可以轉(zhuǎn)換為其他類(lèi)型的值
while (!recset.IsEOF())
{
//讀取Excel內(nèi)部數(shù)值
recset.GetFieldValue("id",var);
jiangxiang[ti].id=var.m_iVal;
recset.GetFieldValue("name", jiangxiang[ti].name);
ti++;
recset.MoveNext();
}
recset.Close();//關(guān)閉記錄集
//執(zhí)行sql語(yǔ)句
CString sSql="";
sSql+="delete * from 院系審核";//清空表
database.ExecuteSQL(sSql);
sSql也可以為Insert ,Update等語(yǔ)句
//讀取字段名
sSql = "SELECT * FROM Sheet1"; //讀取的文件有Sheet1表的定義,或?yàn)楸境绦蛏傻谋?
//執(zhí)行查詢(xún)語(yǔ)句
recset.Open(CRecordset::forwardOnly, sSql, CRecordset::readOnly);
int excelColCount=recset.GetODBCFieldCount();//列數(shù)
CString excelfield[30];
//得到記錄集字段集合中的字段總個(gè)數(shù)
for(i=0;i<excelColCount;i++)
{
CODBCFieldInfo fieldinfo;
recset.GetODBCFieldInfo(i,fieldinfo);
excelfield[i].name =fieldinfo.m_strName;//字段名
}
//打開(kāi)excel文件
CString sDriver = "MICROSOFT EXCEL DRIVER (*.XLS)";
//Excel安裝驅(qū)動(dòng)
CString sSql,sExcelFile; //sExcelFile為excel的文件路徑
TRY
{
//創(chuàng)建存取的字符串
sSql.Format("DRIVER={%s};DSN='';FIRSTROWHASNAMES=1;READONLY=FALSE;CREATE_DB=\"%s\";DBQ=%s",sDriver, sExcelFile, sExcelFile);
//創(chuàng)建Excel表格數(shù)據(jù)庫(kù)
if( database.OpenEx(sSql,CDatabase::noOdbcDialog) )
{
//可以把excel作為一個(gè)數(shù)據(jù)庫(kù)操作
}
}catch(e){
TRACE1("Excel驅(qū)動(dòng)未安裝: %s",sDriver);
AfxMessageBox("讀取失敗,請(qǐng)檢查是否定義數(shù)據(jù)區(qū)Sheet1");
}
- VC基于ADO技術(shù)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù)的方法
- VC用Ado接口連接和使用數(shù)據(jù)庫(kù)及注意事項(xiàng)
- c++連接mysql數(shù)據(jù)庫(kù)的兩種方法(ADO連接和mysql api連接)
- 用C語(yǔ)言操作MySQL數(shù)據(jù)庫(kù)的通用方法
- C語(yǔ)言連接并操作Sedna XML數(shù)據(jù)庫(kù)的方法
- c語(yǔ)言連接mysql數(shù)據(jù)庫(kù)的實(shí)現(xiàn)方法
- VC中使用ADO開(kāi)發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序簡(jiǎn)明教程
相關(guān)文章
輕松實(shí)現(xiàn)C/C++各種常見(jiàn)進(jìn)制相互轉(zhuǎn)換
這篇文章主要介紹了輕松實(shí)現(xiàn)C/C++各種常見(jiàn)進(jìn)制相互轉(zhuǎn)換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-11-11
c++ std::invalid_argument應(yīng)用
想研究std::invalid_argument的朋友可以參考下2013-01-01
C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C++實(shí)現(xiàn)景區(qū)信息管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++動(dòng)態(tài)加載so/dll庫(kù)的實(shí)現(xiàn)
本文主要介紹了C++動(dòng)態(tài)加載so/dll庫(kù)的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-07-07
OpenCV實(shí)現(xiàn)簡(jiǎn)易標(biāo)定板
這篇文章主要為大家詳細(xì)介紹了OpenCV實(shí)現(xiàn)簡(jiǎn)易標(biāo)定板,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-04-04
C語(yǔ)言詳解實(shí)現(xiàn)猜數(shù)字游戲步驟
猜數(shù)字是興起于英國(guó)的益智類(lèi)小游戲,起源于20世紀(jì)中期,一般由兩個(gè)人或多人玩,也可以由一個(gè)人和電腦玩。游戲規(guī)則為一方出數(shù)字,一方猜,今天我們來(lái)實(shí)現(xiàn)這個(gè)游戲案例2022-07-07
淺析C++模板類(lèi)型中的原樣轉(zhuǎn)發(fā)和可變參數(shù)的實(shí)現(xiàn)
可變參數(shù)模板(variadic templates)是C++11新增的強(qiáng)大的特性之一,它對(duì)模板參數(shù)進(jìn)行了高度泛化,能表示0到任意個(gè)數(shù)、任意類(lèi)型的參數(shù),這篇文章主要介紹了C++可變參數(shù)模板的展開(kāi)方式,需要的朋友可以參考下2022-08-08

