偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

操作ADO.NET Access數(shù)據(jù)庫基本步驟總結(jié)

開發(fā) 后端
這里介紹了ADO.NET Access數(shù)據(jù)庫訪問技術(shù)使用的基本步驟及方法,步驟清晰,希望對大家有幫助。

學(xué)習(xí)ADO.NET時,你可能會遇到ADO.NET Access問題,這里將介紹ADO.NET Access問題的解決方法,在這里拿出來和大家分享一下。在示例程序中我們?nèi)圆捎迷瓗旖Y(jié)構(gòu),數(shù)據(jù)庫名Demo.mdb,庫內(nèi)表名DemoTable,表內(nèi)字段名為Name(姓名)和Age(年齡)的兩個字段,來構(gòu)造示例程序操作所需的ADO.NET Access數(shù)據(jù)庫,這也和上兩篇文章的示例源碼中的庫結(jié)構(gòu)相兼容。

下面讓我們看看ADO數(shù)據(jù)庫訪問技術(shù)使用的基本步驟及方法:

首先,要用#import語句來引用支持ADO的組件類型庫(*.tlb),其中類型庫可以作為可執(zhí)行程序(DLL、EXE等)的一部分被定位在其自身程序中的附屬資源里,如:被定位在msado15.dll的附屬資源中,只需要直接用#import引用它既可。可以直接在Stdafx.h文件中加入下面語句來實現(xiàn):

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

     #T#其中路徑名可以根據(jù)自己系統(tǒng)安裝的ADO支持文件的路徑來自行設(shè)定。當編譯器遇到#import語句時,它會為引用組件類型庫中的接口生成包裝類,#import語句實際上相當于執(zhí)行了API涵數(shù)LoadTypeLib()。#import語句會在工程可執(zhí)行程序輸出目錄中產(chǎn)生兩個文件,分別為*.tlh(類型庫頭文件)及*.tli(類型庫實現(xiàn)文件),它們分別為每一個接口產(chǎn)生智能指針,并為各種接口方法、枚舉類型,CLSID等進行聲明,創(chuàng)建一系列包裝方法。語句no_namespace說明ADO對象不使用命名空間,rename ("EOF", "adoEOF")說明將ADO中結(jié)束標志EOF改為adoEOF,以避免和其它庫中命名相沖突。

其次,在程序初始過程中需要初始化組件,一般可以用CoInitialize(NULL);來實現(xiàn),這種方法在結(jié)束時要關(guān)閉初始化的COM,可以用下面語句CoUnInitialize();來實現(xiàn)。在MFC中還可以采用另一種方法來實現(xiàn)初始化COM,這種方法只需要一條語句便可以自動為我們實現(xiàn)初始化COM和結(jié)束時關(guān)閉COM的操作,語句如下所示: AfxOleInit();

接著,就可以直接使用ADO的操作了。我們經(jīng)常使用的只是前面用#import語句引用類型庫時,生成的包裝類.tlh中聲明的智能指針中的三個,它們分別是_ConnectionPtr、_RecordsetPtr和_CommandPtr。下面分別對它們的使用方法進行介紹:

_ConnectionPtr智能指針,通常用于打開、關(guān)閉一個庫連接或用它的Execute方法來執(zhí)行一個不返回結(jié)果的命令語句(用法和_CommandPtr中的Execute方法類似)。
——打開一個庫連接。先創(chuàng)建一個實例指針,再用Open打開一個庫連接,它將返回一個IUnknown的自動化接口指針。代碼如下所示:

  1. _ConnectionPtr m_pConnection;  
  2. // 初始化COM,創(chuàng)建ADO連接等操作  
  3. AfxOleInit();  
  4. m_pConnection.CreateInstance(__uuidof(Connection));  
  5.  
  6. // 在ADO操作中建議語句中要常用try...catch()來捕獲錯誤信息,  
  7. // 因為它有時會經(jīng)常出現(xiàn)一些意想不到的錯誤。jingzhou xu  
  8. try                   
  9. {   
  10.  // 打開本地Access庫Demo.mdb  
  11.  m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Demo.mdb","","",adModeUnknown);  
  12. }  
  13. catch(_com_error e)  
  14. {  
  15.  AfxMessageBox("數(shù)據(jù)庫連接失敗,確認數(shù)據(jù)庫Demo.mdb是否在當前路徑下!");  
  16.  return FALSE;  
  17. }      ——關(guān)閉一個庫連接。如果連接狀態(tài)有效,則用Close方法關(guān)閉它并賦于它空值。代碼如下所示:   
  18.  
  19. if(m_pConnection->State)  
  20.         m_pConnection->Close();  
  21. m_pConnectionNULL;        
責任編輯:田樹 來源: 博客園
相關(guān)推薦

2009-11-11 16:15:04

ADO.NET操縱數(shù)據(jù)

2009-12-24 10:37:03

ADO.NET訪問數(shù)據(jù)

2009-03-19 09:58:04

ADO.NET數(shù)據(jù)庫SQL操作

2009-12-18 14:27:24

ADO.NET對象

2011-10-09 13:38:14

數(shù)據(jù)庫

2009-12-29 14:01:45

ADO.NET Sql

2011-05-20 13:11:22

ADO.NET

2009-12-30 09:53:31

ADO.NET數(shù)據(jù)庫

2009-11-03 14:46:47

ADO.NET數(shù)據(jù)庫

2009-12-31 09:18:23

ADO.NET對象模型

2009-12-22 09:59:06

ADO.NET數(shù)據(jù)庫

2011-03-04 11:08:46

ADO.NET數(shù)據(jù)庫

2009-12-22 14:15:08

ADO.Net處理數(shù)據(jù)

2010-03-04 13:47:13

Python操作Acc

2009-11-11 14:27:32

ADO.NET函數(shù)

2009-10-29 13:34:01

ADO.NET對象

2009-11-12 15:38:18

ADO.NET數(shù)據(jù)平臺

2009-12-23 15:53:36

ADO.NET訪問數(shù)據(jù)

2009-12-30 15:55:20

ADO.NET數(shù)據(jù)庫

2009-12-25 17:05:32

ADO.NET數(shù)據(jù)庫
點贊
收藏

51CTO技術(shù)棧公眾號