在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

VC中運用ADO共同完成數據庫的設置

VC中運用ADO共同完成數據庫的設置

更新時間:2022-05-08 文章作者:未知 信息來源:網絡 閱讀次數:

ADO是應用層的編程接口,它通過OLE DB提供的COM接口訪問數據,它適合于各種客戶機/服務器應用系統和基于Web的應用,尤其在一些腳本語言中訪問數據庫操作是ADO的主要優勢。ADO是一套用自動化技術建立起來的對象層次結構,它比其他的一些對象模型如DAO(Data Access Object)、RDO(Remote Data Object)等具有更好的靈活性,使用更為方便,并且訪問數據的效率更高。SQL是強大的數據庫操作系統,通過ADO和SQL語句的配合,我們可以的實現對數據庫的一系列操作,例如創建數據庫、創建表、創建索引,實現數據庫的多重查詢、高級查詢和數據的匯總等技術。下面通過例程介紹如何通過ADO和SQL語句的配合實現對數據庫的操作。

  第一步:通過Access創建數據庫test.mdb。

  第二步:創建單文檔工程testado,所有的選項都取默認值。

  第三步:COM庫的初始化

  我們可以使用AfxOleInit()來初始化COM庫,這項工作通常在CWinApp::InitInstance()的重載函數中完成,請看如下代碼:

  BOOL CADOTest1App::InitInstance()
   {
    AfxOleInit();
    ......

  第四步:用#import指令引入ADO類型庫

  我們在stdafx.h中加入如下語句:

  #import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")

這一語句有何作用呢?其最終作用同我們熟悉的#include類似,編譯的時候系統會為我們生成msado15.tlh,ado15.tli兩個C++頭文件來定義ADO庫。

  第五步:在testadoview.h中定義一個指向Connection對象的指針:_ConnectionPtr _pConnection;

  第六步:添加如下代碼:

void CTestadoView::OnInitialUpdate()
{
CView::OnInitialUpdate();
HRESULT hr;
try
{
hr = m_pConnection.CreateInstance("ADODB.Connection");//創建Connection對象
if(SUCCEEDED(hr))
{
hr = m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb","","",adModeUnknown);///連接數據庫
///上面一句中連接字串中的Provider是針對ACCESS2000環境的,對于ACCESS97,需要改為:Provider=Microsoft.Jet.OLEDB.3.51; }
}
}
catch(_com_error e)///捕捉異常
{
CString errormessage;
errormessage.Format("連接數據庫失敗!\r\n錯誤信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);///顯示錯誤信息
}
}


  第七步:在析構函數中關閉Connection對象并將其釋放,代碼如下:

CTestadoView::~CTestadoView()
{
m_pConnection->Close();
m_pConnection.Release();
}


  第八步:添加菜單項"創建數據庫表",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnAddtable()
{
_variant_t RecordsAffected;
m_pConnection->Execute("CREATE TABLE new(ID INTEGER,username TEXT,old INTEGER)",&RecordsAffected,adCmdText);
}


  運行程序,執行菜單當中的命令"添加表",我們可以發現數據庫中已經添加了一個表new,其中的字段有我們定義的字段。

  第九步:添加菜單項"刪除數據庫表",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnDeleteTable()
{
_variant_t RecordsAffected;
m_pConnection->Execute("DROP TABLE new",&RecordsAffected,adCmdText);
}


  運行程序,執行菜單當中的命令"刪除表",我們可以發現數據庫中剛才添加的表new已被刪除。

  第十步:添加菜單項"添加一列",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnAddColumn()
{
_variant_t RecordsAffected;
m_pConnection->Execute("ALTER TABLE new ADD newcolumn1 INTEGER",&RecordsAffected,adCmdText);
}


  運行程序,執行菜單當中的命令"添加一列",我們可以發現數據庫中剛才添加的表new中已添加了一個新列。

  第十一步:添加菜單項"刪除一列",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnAddColumn()
{
_variant_t RecordsAffected;
m_pConnection->Execute("ALTER TABLE new ADD newcolumn1 INTEGER",&RecordsAffected,adCmdText);
}


  運行程序,執行菜單當中的命令"刪除一列",我們可以發現數據庫中剛才添加的表new中的新列已被刪除。

  第十二步:添加菜單項"添加記錄",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnAddRecord()
{
_variant_t RecordsAffected;
for(int i = 1;i < 10; i ++)
{
CString strSQL;
strSQL.Format("INSERT INTO new(ID,username,old) VALUES (%d, 'Washington',%d)",i,i*9);
m_pConnection->Execute((_bstr_t)strSQL,&RecordsAffected,adCmdText);
}


  運行程序,執行菜單當中的命令"添加記錄",我們可以發現數據庫中剛才添加的表new中添加了九條新的記錄。

  第十三步:添加菜單項"old字段加1",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnOldAddone()
{
_variant_t RecordsAffected;
m_pConnection->Execute("UPDATE new SET old = old+1",&RecordsAffected,adCmdText);
}}

  運行程序,執行菜單當中的命令"old記錄加1",我們可以發現數據庫中剛才添加的表new中的九條新的記錄的old字段都自動加1。

  第十四步:添加菜單項"統計記錄數目",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnTotalRecords()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("SELECT COUNT(*) FROM new where ID > 0",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
///取得第一個字段的值放入vCount變量
m_pRecordset->Close();///關閉記錄集
CString Message;
Message.Format("共有%d條記錄",vCount.lVal);
AfxMessageBox(Message);///顯示當前記錄條數
}

  運行程序,執行菜單當中的命令"統計記錄數目",我們可以得到數據庫中記錄的數目。

  第十五步:添加菜單項"設置ID為索引",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnSetIdIndex()
{
_variant_t RecordsAffected;
m_pConnection->Execute("CREATE UNIQUE INDEX id ON new(ID)",&RecordsAffected,adCmdText);
}

  運行程序,執行菜單當中的命令"設置ID為索引",我們可以發現數據庫中ID被設置為索引。

  第十六步:添加菜單項"數據匯總"、"old字段的總和"、"old字段的均值"、"old的最小值"、"old字段的最大值",并添加相應的消息處理函數,然后添加代碼如下:

void CTestadoView::OnOldMax()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select MAX(old) from new",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
///取得第一個字段的值放入vCount變量
m_pRecordset->Close();///關閉記錄集
m_pRecordset.Release();
CString Message;
Message.Format("最大值是%d",vCount.lVal);
AfxMessageBox(Message);
}
void CTestadoView::OnOldMin()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select MIN(old) from new",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
///取得第一個字段的值放入vCount變量
m_pRecordset->Close();///關閉記錄集
m_pRecordset.Release();
CString Message;
Message.Format("最小值是%d",vCount.lVal);
AfxMessageBox(Message);
}

void CTestadoView::OnOldTotal()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select SUM(old) from new",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
///取得第一個字段的值放入vCount變量
m_pRecordset->Close();///關閉記錄集
m_pRecordset.Release();
CString Message;
Message.Format("總和是%d",(long)vCount);
AfxMessageBox(Message);
}

void CTestadoView::OnOldAverage()
{
_RecordsetPtr m_pRecordset;
_variant_t RecordsAffected;
m_pRecordset =m_pConnection->Execute("select AVG(old) from new",&RecordsAffected,adCmdText);
_variant_t vIndex = (long)0;
_variant_t vCount = m_pRecordset->GetCollect(vIndex);
///取得第一個字段的值放入vCount變量
m_pRecordset->Close();///關閉記錄集
m_pRecordset.Release();
CString Message;
Message.Format("平均值是%d",(long)vCount);
AfxMessageBox(Message);
}}

  運行程序,執行菜單當中的匯總命令,我們可以得到相關的匯總信息。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 午夜av中文字幕| 国产又粗又长又大的视频| 毛片毛片毛片毛片毛| 国产熟女高潮视频| 日本国产一级片| 最新av在线免费观看| 国产在线精品91| 亚洲色图偷拍视频| 天堂中文视频在线| 波多野结衣乳巨码无在线| 中文字幕第50页| 国产精品999.| 国产欧美激情视频| 三区视频在线观看| 一个色综合久久| 小泽玛利亚视频在线观看| 欧美激情国产精品日韩| 欧美 日韩 激情| 国产日韩av网站| 国产精品视频网站在线观看| 色一情一区二区三区| 男女啪啪网站视频| 国产精品拍拍拍| 在线观看av日韩| 亚洲一级免费在线观看| 五月天婷婷亚洲| mm131午夜| 欧美日韩dvd| 日韩视频免费播放| 五十路熟女丰满大屁股| 热99这里只有精品| 久久久久久久少妇| 777视频在线| 国产精品av免费| 日本中文字幕一级片| 亚洲色成人www永久在线观看| 久久久99精品视频| 日韩 欧美 视频| 成人免费毛片网| 一区二区三区韩国| 日韩av在线综合| 久久久久久久香蕉| 久久国产午夜精品理论片最新版本| 亚洲精品在线网址| 中文字幕色呦呦| 日韩xxxx视频| 无需播放器的av| 性做爰过程免费播放| 国产婷婷一区二区三区| 青青草精品视频在线观看| 亚洲高清在线不卡| 黄色免费视频大全| 国产三级精品三级在线| 日韩美女爱爱视频| 欧美午夜aaaaaa免费视频| 欧洲精品视频在线| 黄色片一级视频| 波多野结衣激情| 欧美激情国产精品日韩| av不卡在线免费观看| 欧美日韩在线不卡视频| 国产探花在线观看视频| 激情网站五月天| 色中文字幕在线观看| 97超碰人人爽| 成人在线视频一区二区三区| 久久99999| 被灌满精子的波多野结衣| 亚洲欧洲日本精品| 亚洲熟妇无码另类久久久| 黄色片免费网址| 黄色一级免费大片| 黄色激情在线视频| 国产成人美女视频| 无码精品a∨在线观看中文| 中文字幕第一页在线视频| 日韩在线一级片| 天天干天天曰天天操| 亚洲激情在线观看视频| 男人操女人免费软件| 精品无码一区二区三区爱欲| 亚洲第一精品区| 不用播放器的免费av| 热久久精品免费视频| 波多野结衣乳巨码无在线| 99re6这里有精品热视频| 亚洲综合欧美在线| 大肉大捧一进一出好爽动态图| 日本一本草久p| 波多野结衣免费观看| 污污的视频免费观看| 爱豆国产剧免费观看大全剧苏畅| 黄色国产精品视频| 丝袜老师办公室里做好紧好爽| 天天做天天躁天天躁| 草草草视频在线观看| 激情六月天婷婷| 日本男女交配视频| 欧美图片激情小说| 日韩av高清在线看片| 久久综合久久久久| 又粗又黑又大的吊av| 亚洲中文字幕无码不卡电影| 少妇高潮喷水久久久久久久久久| 18禁男女爽爽爽午夜网站免费| 116极品美女午夜一级| 久热免费在线观看| 最新天堂在线视频| 50度灰在线观看| 国产 日韩 亚洲 欧美| 男人操女人免费软件| 毛片毛片毛片毛片毛片毛片毛片毛片毛片| 午夜dv内射一区二区| 91国内在线播放| 男女裸体影院高潮| 爱福利视频一区二区| 国产精品久久..4399| 妓院一钑片免看黄大片| 女人和拘做爰正片视频| 99999精品视频| 亚洲色图欧美自拍| 国产对白在线播放| 国产奶头好大揉着好爽视频| 久久精品亚洲天堂| 五月天综合婷婷| 加勒比成人在线| 久青草视频在线播放| 亚洲男人天堂2021| 国产 欧美 日韩 一区| 九九热视频免费| a级黄色小视频| 污免费在线观看| 色一情一乱一伦一区二区三区日本| 韩国中文字幕av| 亚洲人成无码www久久久| 亚洲一二三不卡| 欧美 日韩 国产精品| 国产a级片免费看| 国产aⅴ爽av久久久久| 国产亚洲综合视频| 999在线精品视频| 国产熟女高潮视频| 黄色网页免费在线观看| 亚洲国产精品女人| 99在线免费视频观看| 国产精品亚洲a| 欧美黄网站在线观看| 中文字幕 欧美日韩| 国产91对白刺激露脸在线观看| 日韩免费视频播放| 黄色一级片网址| 国产aaa免费视频| 性欧美在线视频| 男人日女人下面视频| 日韩国产成人无码av毛片| 91av资源网| 大胆欧美熟妇xx| 日本免费不卡一区二区| 久久久久久久少妇| 男女裸体影院高潮| 亚洲乱码日产精品bd在线观看| 警花观音坐莲激情销魂小说| 看一级黄色录像| 妞干网在线视频观看| 霍思燕三级露全乳照| 亚洲成人福利在线观看| 久久九九国产视频| 久久久无码中文字幕久...| 我看黄色一级片| 99精品视频免费版的特色功能| 日韩人妻精品无码一区二区三区| 亚洲成人av免费看| mm1313亚洲国产精品无码试看| 超碰91在线播放| jizz欧美激情18| 免费的一级黄色片| 亚洲精品蜜桃久久久久久| 欧美综合在线播放| 妺妺窝人体色www看人体| 中文字幕1234区| 无码人妻aⅴ一区二区三区日本| 91精品999| 久久www视频| 久久精品国产精品亚洲色婷婷| 中文字幕无码精品亚洲35| 超碰网在线观看| 在线能看的av网站| 国产一级黄色录像片| 自慰无码一区二区三区| 国产又大又黄又猛| 青娱乐国产精品视频| av网站大全免费| 国产色视频在线播放| 麻豆一区二区三区在线观看| 欧美日韩黄色一级片| 久久久国产欧美| 91.com在线| 天天操天天爽天天射| 99久久99久久精品| 精品www久久久久奶水|