自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

對Oracle數(shù)據(jù)庫編程的總結(jié)

數(shù)據(jù)庫 Oracle
以下的文章是對Oracle數(shù)據(jù)庫編程的總結(jié),其中包括如何訪問數(shù)據(jù)庫的技術(shù)與方法,VC數(shù)據(jù)庫的編程幾種常用的方法的介紹。

本文是對Oracle數(shù)據(jù)庫編程的總結(jié) ,現(xiàn)在有很多的常用的數(shù)據(jù)庫,其中包括Oracle, MS SQL Server, Sybase, Informix, MySQL, DB2, Interbase / Firebird, PostgreSQL, SQLite, SAP/DB, TimesTen, MS ACCESS等等。

數(shù)據(jù)庫編程是對數(shù)據(jù)庫的創(chuàng)建、讀寫等一列的操作。

數(shù)據(jù)庫編程分為數(shù)據(jù)庫客戶端編程與數(shù)據(jù)庫服務(wù)器端編程。數(shù)據(jù)庫客戶端編程主要使用ODBC API、ADO、ADO.NET、OCI、OTL等方法;數(shù)據(jù)庫服務(wù)端編程主要使用OLE DB等方法。Oracle數(shù)據(jù)庫編程需要掌握一些訪問數(shù)據(jù)庫技術(shù)方法,還需要注意怎么設(shè)計(jì)高效的數(shù)據(jù)庫、數(shù)據(jù)庫管理與運(yùn)行的優(yōu)化、數(shù)據(jù)庫語句的優(yōu)化。

一、訪問數(shù)據(jù)庫技術(shù)方法

數(shù)據(jù)庫編程分為數(shù)據(jù)庫客戶端編程與數(shù)據(jù)庫服務(wù)器端編程。數(shù)據(jù)庫客戶端編程主要使用ODBC API、ADO、ADO.NET、OCI、OTL等方法;數(shù)據(jù)庫服務(wù)端編程主要使用OLE DB等方法。

1、幾種是數(shù)據(jù)庫訪問方法比較

ODBC API是一種適合數(shù)據(jù)庫底層開發(fā)的編程方法,ODBC API提供大量對數(shù)據(jù)源的操作,ODBC API能夠靈活地操作游標(biāo),支持各種幫定選項(xiàng),在所有ODBC相關(guān)編程中,API編程具有最高的執(zhí)行速度。

DAO提供了很好的Oracle數(shù)據(jù)庫編程的對象模型.但是,對數(shù)據(jù)庫的所有調(diào)用以及輸出的數(shù)據(jù)都必須通過Access/Jet數(shù)據(jù)庫引擎,這對于使用數(shù)據(jù)庫應(yīng)用程序,是嚴(yán)重的瓶頸。

OLE DB提供了COM接口,與傳統(tǒng)的數(shù)據(jù)庫接口相比,有更好的健壯性和靈活性,具有很強(qiáng)的錯誤處理能力,能夠同非關(guān)系數(shù)據(jù)源進(jìn)行通信。

ADO最主要的優(yōu)點(diǎn)在于易于使用、速度快、內(nèi)存支出少和磁盤遺跡小。

ADO.NET 是利用數(shù)據(jù)集的概念將數(shù)據(jù)庫數(shù)據(jù)讀入內(nèi)存中,然后在內(nèi)存中對數(shù)據(jù)進(jìn)行操作,最后將數(shù)據(jù)集數(shù)據(jù)回寫到源數(shù)據(jù)庫中。

OTL 是 Oracle, Odbc and DB2-CLI Template Library 的縮寫,是一個C++編譯中操控關(guān)系數(shù)據(jù)庫的模板庫, OTL中直接操作Oracle主要是通過Oracle提供的OCI接口進(jìn)行,進(jìn)行操作DB2數(shù)據(jù)庫則是通過CLI接口來進(jìn)行,至于MS的數(shù)據(jù)庫和其它一些數(shù)據(jù)庫,則OTL只提供了ODBC來操作的方式。

當(dāng)然Oracle和DB2也可以由OTL間接使用ODBC的方式來進(jìn)行操縱。具有以下優(yōu)點(diǎn):跨平臺;運(yùn)行效率高,與C語言直接調(diào)用API相當(dāng);開發(fā)效率高,起碼比ADO.net使用起來更簡單,更簡潔;部署容易,不需要ADO組件,不需要.net framework 等。

2、VC數(shù)據(jù)庫編程幾種方法

VC數(shù)據(jù)庫編程幾種方法,包括ODBC連接、MFC ODBC連接、DAO連接、OLE DB、OLE DB Templates連接、ADO、Oracle專用方法(OCI(Oracle Call Interface)訪問、Oracle Object OLE C++ Class Library )。

<1.>通用方法

1. ODBC連接

 

ODBC(Open DataBase Connectivity)是MSOA的一部分,是一個標(biāo)準(zhǔn)數(shù)據(jù)庫接口。它提供對關(guān)系數(shù)據(jù)庫訪問的統(tǒng)一接口,實(shí)現(xiàn)對異構(gòu)數(shù)據(jù)源的一致訪問。

 

ODBC數(shù)據(jù)訪問由以下部分組成:

<1>句柄(Handles):ODBC使用句柄來標(biāo)識ODBC環(huán)境、連接、語句和描述器.

 

<2>緩存區(qū)(Buffers):

 

<3>數(shù)據(jù)類型(Data types)

 

<4>一致性級別(Conformance levels)

 

用ODBC設(shè)計(jì)客戶端的一般步驟:

 

<1>分配ODBC環(huán)境

 

<2>分配連接句柄

 

<3>連接數(shù)據(jù)源

 

<4>構(gòu)造和執(zhí)行SQL語句

 

<5>獲得查詢結(jié)果

 

<6>斷開數(shù)據(jù)源的連接

 

<7>釋放ODBC環(huán)境

 

ODBC API是一種適合數(shù)據(jù)庫底層開發(fā)的編程方法,ODBC API提供大量對數(shù)據(jù)源的操作,ODBC API能夠靈活地操作游標(biāo),支持各種幫定選項(xiàng),在所有ODBC相關(guān)編程中,API編程具有最高的執(zhí)行速度.因此,ODBC API編程屬于底層編程。

 

2. MFC ODBC連接

MFC ODBC是MFC對ODBC進(jìn)行的封裝,以簡化對ODBC API的 調(diào)用,從而實(shí)現(xiàn)面向?qū)ο蟮腛racle數(shù)據(jù)庫編程接口.

 

MFC ODBC的封裝主要開發(fā)了CDatabase類和CRecordSet類

 

(1) CDatabase類

 

CDatabase類用于應(yīng)用程序建立同數(shù)據(jù)源的連接。CDatabase類中包含一個m_hdbc變量,它代表了數(shù)據(jù)源的連接句柄。如果要建立CDatabase類的實(shí)例,應(yīng)先調(diào)用該類的構(gòu)造函數(shù),再調(diào)用Open函數(shù),通過調(diào)用,初始化環(huán)境變量,并執(zhí)行與數(shù)據(jù)源的連接。在通過Close函數(shù)關(guān)閉數(shù)據(jù)源。

 

CDatabase類提供了對數(shù)據(jù)庫進(jìn)行操作的函數(shù)及事務(wù)操作。

 

(2) CRecordSet類

 

CRecordSet類定義了從數(shù)據(jù)庫接收或者發(fā)送數(shù)據(jù)到數(shù)據(jù)庫的成員變量,以實(shí)現(xiàn)對數(shù)據(jù)集的數(shù)據(jù)操作。

 

CRecordSet類的成員變量m_hstmt代表了定義該記錄集的SQL語句句柄,m_nFields為記錄集中字段的個數(shù),m_nParams為記錄集所使用的參數(shù)個數(shù)。

 

CRecordSet的記錄集通過CDatabase實(shí)例的指針實(shí)現(xiàn)同數(shù)據(jù)源的連接,即CRecordSet的成員變量m_pDatabase.

 

MFC ODBC編程更適合于界面型數(shù)據(jù)庫應(yīng)用程序的開發(fā),但由于CDatabase類和CRecordSet類提供的數(shù)據(jù)庫操作函數(shù)有限,支持的游標(biāo)類型也有限,限制了高效的數(shù)據(jù)庫開發(fā)。在編程層次上屬于高級編程。

 

【編輯推薦】

  1. Oracle查詢分頁的存儲過程實(shí)際代碼示例
  2. Oracle數(shù)據(jù)庫的安全,PL/SQL的SQL注入
  3. Oracle應(yīng)用顧問發(fā)展計(jì)劃 著力培養(yǎng)實(shí)用型軟件人才
  4. Oracle 字符串split的相關(guān)實(shí)際應(yīng)用代碼介紹
  5. Oracle創(chuàng)建Split 與Map 函數(shù)的代碼示例
責(zé)任編輯:佚名 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-19 13:59:17

Oracle 數(shù)據(jù)庫

2010-04-20 10:41:49

Oracle數(shù)據(jù)庫

2011-04-12 10:09:33

Oracle數(shù)據(jù)庫關(guān)閉

2010-04-14 13:14:46

Oracle數(shù)據(jù)庫

2011-06-14 15:11:59

ORACLE

2011-09-02 10:06:51

OracleSqlLoad常用技巧

2010-04-13 10:55:35

Oracle數(shù)據(jù)庫

2010-04-21 09:49:10

Oracle數(shù)據(jù)庫字符

2009-06-30 15:02:41

磁盤排序Oracle數(shù)據(jù)庫性能

2011-03-17 14:09:25

Oracle數(shù)據(jù)庫字符

2010-05-04 17:08:24

Oracle數(shù)據(jù)庫

2011-11-03 16:57:42

NoSQL

2010-11-15 10:30:04

Oracle數(shù)據(jù)庫啟動

2010-04-01 17:06:57

Oracle數(shù)據(jù)庫

2019-08-28 07:11:00

Oracle數(shù)據(jù)庫LOB

2011-08-09 18:15:24

Oracle 10g查找數(shù)據(jù)

2011-08-10 15:38:12

ConstraintOracle

2011-07-29 15:31:52

Oracle數(shù)據(jù)庫ORDER BY

2010-05-04 11:02:44

Oracle數(shù)據(jù)庫

2010-06-01 09:22:35

MySQL數(shù)據(jù)庫
點(diǎn)贊
收藏

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