国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

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

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);
}}

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

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

本類教程下載

系統下載排行

国产午夜成人免费看片无遮挡_日本免费xxxx色视频_免费人成网上在线观看_黄网址在线永久免费观看

  • <label id="pxtpz"><meter id="pxtpz"></meter></label>
      1. <span id="pxtpz"><optgroup id="pxtpz"></optgroup></span>

        欧美老肥妇做.爰bbww视频| 麻豆免费看一区二区三区| 一区二区三区四区在线免费观看| 肉色丝袜一区二区| 色猫猫国产区一区二在线视频| 亚洲人精品午夜| 亚洲h在线观看| 91麻豆精品91久久久久同性| 2017欧美狠狠色| 亚洲成人自拍偷拍| 色狠狠av一区二区三区| 国产精品久久久久久久久免费丝袜 | 91精品福利视频| 国产精品国产馆在线真实露脸| 国产精品中文字幕日韩精品| 欧美一区二区三区四区久久| 日韩经典一区二区| 在线播放一区二区三区| 丝袜美腿亚洲综合| 91精品一区二区三区久久久久久 | 亚洲日本在线看| 成人ar影院免费观看视频| 亚洲欧美激情小说另类| 成人丝袜18视频在线观看| 欧美精品在线一区二区三区| 亚洲国产精品久久久久婷婷884 | 精品久久久久久久久久久院品网 | 99久久精品国产一区| 精品久久五月天| 国产成人精品免费在线| 国产精品免费av| 欧美亚洲国产怡红院影院| 午夜在线电影亚洲一区| 精品国产自在久精品国产| 国产专区欧美精品| 久久人人爽爽爽人久久久| 成人18精品视频| 亚洲在线成人精品| 欧美一级日韩一级| 国产成人在线色| 欧美一卡2卡3卡4卡| 国产一区 二区| 亚洲一区自拍偷拍| 亚洲精品一线二线三线| 一本久久a久久免费精品不卡| 亚洲成人综合网站| 国产无遮挡一区二区三区毛片日本| 国产69精品久久777的优势| 国产麻豆一精品一av一免费| 国产河南妇女毛片精品久久久| 91免费版在线| 国产成人精品免费视频网站| 一区二区三区产品免费精品久久75| 亚洲制服欧美中文字幕中文字幕| 欧美日韩精品久久久| 另类综合日韩欧美亚洲| 国产精品久久久久影院亚瑟| 欧美一级夜夜爽| 一本久久a久久精品亚洲| 麻豆国产精品视频| 这里只有精品电影| 亚洲成人免费影院| 国产日韩成人精品| 69堂亚洲精品首页| voyeur盗摄精品| 成人午夜视频网站| 亚洲国产一区二区视频| 亚洲精品在线网站| 在线视频一区二区三区| 欧美久久久久久久久久| 日韩免费高清视频| 国产视频一区在线观看 | 国产精品中文欧美| 国产精品正在播放| 欧美一区二区在线观看| 91精品国产乱码| 欧美一激情一区二区三区| a在线欧美一区| 久久99精品国产麻豆不卡| 狠狠色丁香婷婷综合久久片| 欧美午夜理伦三级在线观看| 亚洲综合无码一区二区| 亚洲午夜成aⅴ人片| 夫妻av一区二区| av电影在线观看一区| 91久久线看在观草草青青| 精品视频一区二区三区免费| 日韩小视频在线观看专区| 国产亚洲欧洲997久久综合| 亚洲在线视频免费观看| 日韩电影在线看| 国产成人在线视频网站| 欧美在线观看你懂的| www.欧美色图| 欧美一级精品在线| 一区二区在线观看免费| 成人免费毛片a| 91精品国产全国免费观看| 日韩欧美一级二级三级| 性久久久久久久| 99re8在线精品视频免费播放| 欧美丝袜自拍制服另类| 亚洲国产精品一区二区尤物区| 一个色在线综合| 99久久久国产精品| 国产成人欧美日韩在线电影| 91福利精品第一导航| 日韩精品中文字幕在线不卡尤物| 亚洲四区在线观看| 国产老妇另类xxxxx| 制服丝袜亚洲网站| 亚洲六月丁香色婷婷综合久久 | 欧美高清性hdvideosex| 欧美激情一区二区三区不卡 | 国产白丝网站精品污在线入口| 欧洲激情一区二区| 国产精品麻豆网站| 国产精品一区二区在线看| 在线综合视频播放| 亚洲成a人在线观看| 99久久久国产精品| 国产精品欧美经典| 国产精品456| 92精品国产成人观看免费| 亚洲欧洲综合另类| 国产偷国产偷亚洲高清人白洁| 色综合一区二区三区| 午夜视频一区二区三区| 精品国产一区二区三区久久久蜜月| 国产老肥熟一区二区三区| 日韩欧美一二三| 日本电影欧美片| 丁香啪啪综合成人亚洲小说| 中文字幕中文在线不卡住| 日韩免费视频线观看| 337p亚洲精品色噜噜狠狠| 日韩一区欧美一区| 97精品久久久久中文字幕 | 久久99精品久久久久久| 91精品国产综合久久久蜜臀粉嫩 | 午夜免费久久看| 欧美天堂亚洲电影院在线播放| 亚洲精品你懂的| 91成人网在线| 一区二区三区毛片| 欧美日韩高清一区| 免费精品99久久国产综合精品| 日韩午夜精品视频| 精品一区二区三区久久久| 国产三级欧美三级日产三级99| 精品一区二区三区免费毛片爱| 久久免费精品国产久精品久久久久| 精品一区二区三区av| 国产精品亲子伦对白| 91高清视频在线| 久久国产乱子精品免费女| 国产欧美精品一区二区色综合朱莉| 成人av电影在线| 亚洲国产综合在线| 精品国产髙清在线看国产毛片 | 美女视频黄频大全不卡视频在线播放| 在线综合视频播放| 国产mv日韩mv欧美| 亚洲大尺度视频在线观看| 精品国产乱码久久久久久免费 | 欧美一级淫片007| 国产suv精品一区二区三区| 亚洲一区二区四区蜜桃| 欧美精品一区二区在线观看| 91在线视频观看| 免费人成黄页网站在线一区二区| 国产天堂亚洲国产碰碰| 欧美日韩精品一区二区三区蜜桃| 国产在线视频不卡二| 国产在线精品不卡| www.亚洲国产| 免费成人在线视频观看| 91国产成人在线| 国产精品女主播av| 国产在线不卡一卡二卡三卡四卡| av午夜精品一区二区三区| 555www色欧美视频| 日韩电影一二三区| 欧美精品乱码久久久久久| 午夜不卡在线视频| 欧美又粗又大又爽| 国产一区二区三区四| 在线观看一区二区精品视频| 日韩高清不卡一区| 亚洲男人天堂av| 久久精品欧美日韩| 精品久久人人做人人爽| 欧美日本在线播放| 在线一区二区观看| 99re亚洲国产精品| 国产在线视频一区二区| 免费三级欧美电影| 日本不卡1234视频| 麻豆国产精品官网| 美女一区二区视频|