新聞中心
隨著計(jì)算機(jī)技術(shù)的不斷發(fā)展,數(shù)據(jù)庫(kù)管理系統(tǒng)已經(jīng)成為了軟件開(kāi)發(fā)的重要組成部分。作為一種數(shù)據(jù)庫(kù)操作技術(shù),ODBC也隨著數(shù)據(jù)庫(kù)技術(shù)的不斷發(fā)展而逐漸成熟。ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)已經(jīng)成為了數(shù)據(jù)存儲(chǔ)和提取過(guò)程中必不可少的一部分,具有廣泛的應(yīng)用前景。

我們提供的服務(wù)有:網(wǎng)站建設(shè)、成都做網(wǎng)站、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、安陸ssl等。為1000+企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的安陸網(wǎng)站制作公司
VC源代碼是一種經(jīng)典的軟件編程語(yǔ)言,適用于Windows操作系統(tǒng)下的軟件開(kāi)發(fā)。利用VC源代碼進(jìn)行ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)的開(kāi)發(fā),可以實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速存儲(chǔ)和高效檢索,是一種有效提升軟件開(kāi)發(fā)效率的方法。
基于ODBC的數(shù)據(jù)庫(kù)管理系統(tǒng)可以通過(guò)對(duì)數(shù)據(jù)庫(kù)進(jìn)行全面統(tǒng)一的管理,以提高對(duì)數(shù)據(jù)的可靠性和安全性。ODBC采用了標(biāo)準(zhǔn)的接口定義,用戶可以通過(guò)ODBC訪問(wèn)多種數(shù)據(jù)庫(kù),包括Oracle、MySQL、SQLite等。因此,ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)可以實(shí)現(xiàn)對(duì)各種數(shù)據(jù)庫(kù)的通用管理。
VC源代碼開(kāi)發(fā)ODEC數(shù)據(jù)庫(kù)管理系統(tǒng)的過(guò)程中,需要遵循一定的規(guī)范,并且熟練掌握數(shù)據(jù)庫(kù)管理系統(tǒng)的基本原理和技術(shù)。具體開(kāi)發(fā)過(guò)程如下:
1. 數(shù)據(jù)庫(kù)的設(shè)計(jì)與建立
在VC源代碼中,首先需要定義數(shù)據(jù)庫(kù),包括表的字段、數(shù)據(jù)類型和關(guān)聯(lián)等信息。然后根據(jù)定義的數(shù)據(jù)庫(kù)結(jié)構(gòu),建立數(shù)據(jù)庫(kù)連接,并進(jìn)行數(shù)據(jù)表的建立和更新等操作。
2. 數(shù)據(jù)庫(kù)操作的實(shí)現(xiàn)
數(shù)據(jù)庫(kù)操作包括數(shù)據(jù)的插入、刪除、修改和查詢等功能。利用VC源代碼開(kāi)發(fā)ODBC數(shù)據(jù)庫(kù)管理系統(tǒng),需要建立相應(yīng)的數(shù)據(jù)庫(kù)操作窗口。用戶可以通過(guò)該窗口對(duì)ODBC數(shù)據(jù)庫(kù)進(jìn)行基本操作,如對(duì)表數(shù)據(jù)的增刪改查等。
在VC源代碼中,還需要定義SQL語(yǔ)句,以實(shí)現(xiàn)對(duì)數(shù)據(jù)的快速檢索。同時(shí),需要建立相應(yīng)的緩存機(jī)制,以提高查詢效率。
3. 數(shù)據(jù)庫(kù)的安全管理
數(shù)據(jù)庫(kù)的安全管理是ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)的重要組成部分。在VC源代碼中,可以通過(guò)實(shí)現(xiàn)用戶權(quán)限控制、密碼保護(hù)等方式,確保數(shù)據(jù)的安全性。此外,還需要實(shí)現(xiàn)數(shù)據(jù)備份和恢復(fù)等功能,以提高數(shù)據(jù)的可靠性。
4. 數(shù)據(jù)庫(kù)的優(yōu)化
為了提高數(shù)據(jù)庫(kù)操作效率,需要進(jìn)行數(shù)據(jù)庫(kù)的優(yōu)化。在VC源代碼開(kāi)發(fā)過(guò)程中,可以采用一系列優(yōu)化措施,包括緩存機(jī)制、數(shù)據(jù)庫(kù)索引、存儲(chǔ)過(guò)程等。這些優(yōu)化措施可以大大提高數(shù)據(jù)的檢索速度和存儲(chǔ)效率。
VC源代碼是開(kāi)發(fā)ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)的重要工具之一,可以實(shí)現(xiàn)快速開(kāi)發(fā)和高效管理多種數(shù)據(jù)庫(kù)。在開(kāi)發(fā)過(guò)程中,需要遵循一定的規(guī)范和原則,掌握基本技術(shù)及優(yōu)化措施,才能大大提高ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)的效率和可靠性。
相關(guān)問(wèn)題拓展閱讀:
- 幾種VC++數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)的比較
- 什么是JDBC?什么是ODBC?以及它們有什么區(qū)別?(具體點(diǎn),謝謝?)
幾種VC++數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)的比較
從功能簡(jiǎn)單的數(shù)據(jù)庫(kù)(如Jet Engine)到復(fù)雜的大型數(shù)據(jù)庫(kù)系統(tǒng)(如oracle),VC++6.0都提供了一些編程接口。本文主要介紹以下五種:
1.ODBC API;
2.MFC ODBC類;
3.MFC DAO類;(數(shù)據(jù)訪問(wèn)對(duì)象)
4.MFC的OLE/DB;
5.ActiveX數(shù)據(jù)對(duì)象(ADO)。
1.開(kāi)放數(shù)據(jù)庫(kù)連接(ODBC API):提供了一個(gè)通用的編程接口,允許程序與多種不同的數(shù)據(jù)庫(kù)連接。它為Oracle,SQL Server,MS Excel等都提供了驅(qū)動(dòng)程序,使得用戶可以使用SQL語(yǔ)句對(duì)數(shù)據(jù)庫(kù)進(jìn)行直接的底層功能操作。在使用ODBC API時(shí),用戶須引入的頭文件為”sql.h”,”sqlext.h”,”sqltypes.h”。用ODBC API創(chuàng)建數(shù)據(jù)庫(kù)應(yīng)用程序遵循一定的基本步驟:
之一步是分配ODBC環(huán)境,使一些內(nèi)部結(jié)構(gòu)初始化。完成這一步,須分配一個(gè)SQLHENV類型的變量在ODBC環(huán)境中做句柄使用。
第二步是為將要使用的每一個(gè)數(shù)據(jù)源分源察晌配一個(gè)連接句柄,由函數(shù)SQLALLocHandle()完成。
第三步是使用SQLConnect()把連接句柄與數(shù)據(jù)庫(kù)連接,可以先通過(guò)SQLSetConnectAttr()設(shè)置連接屬性。
然后就可以進(jìn)行SQL語(yǔ)句的操作,限于篇幅,相關(guān)的函數(shù)就不具體介紹了,讀者可以參考相關(guān)書(shū)籍。
操作完成后,用戶取回相應(yīng)的結(jié)果,就可以取消與數(shù)據(jù)庫(kù)的連接。
最后需要釋放ODBC環(huán)境。
ODBC API的特點(diǎn)是功能強(qiáng)大豐富,提供了異步操作,事務(wù)處理等高級(jí)功能,但相應(yīng)的編程復(fù)雜,工作量大。
2.MFC ODBC類:MFC1.5后的版本里引入封裝了ODBC功能的類。通過(guò)這些類提供與ODBC的接口,使得用戶可以不須處理ODBC API中的繁雜處理就可以進(jìn)行數(shù)據(jù)庫(kù)操作。主要的MFC ODBC類如下。
CDatabase類:一個(gè)CDatabase對(duì)象表示一個(gè)到數(shù)據(jù)源的連接,通過(guò)它可以操作數(shù)據(jù)源。應(yīng)用程序可使用多個(gè)CDatabase對(duì)象:構(gòu)造一個(gè)對(duì)象并調(diào)用OpenEx()成員函數(shù)打開(kāi)一個(gè)連接。接著構(gòu)造CRecordSet對(duì)象以操作連接的數(shù)據(jù)源,并向CDatabase對(duì)象傳遞記錄集構(gòu)造程序指針。完成使用后用Close()成員函數(shù)銷毀CDatabase對(duì)象。一般情況下并不需要直接使用CDatabase對(duì)象,因?yàn)镃RecordSet對(duì)象可以實(shí)現(xiàn)大多數(shù)的功能。但是在進(jìn)行事務(wù)處理時(shí),CDatabase就起到關(guān)鍵作用。事務(wù)(Transaction)指的是將一系列對(duì)數(shù)據(jù)源的更新放在一起,同時(shí)提交或一個(gè)也不提交,為的是確保多用戶對(duì)數(shù)據(jù)源同時(shí)操作時(shí)的數(shù)據(jù)正確性。
CRecordSet類:一個(gè)CRecordSet對(duì)象代表一個(gè)從數(shù)據(jù)源選擇的一組記錄的-記錄集。記錄集有兩種形式:snapshot和dynaset。前者表示數(shù)據(jù)的靜態(tài)視圖,后者表示記錄集與其他用戶對(duì)數(shù)據(jù)庫(kù)的更新保持同步。通過(guò)CRecordSet對(duì)象,用戶可以對(duì)數(shù)據(jù)庫(kù)中的記錄進(jìn)行各種操作。
CRecordView類:CRecordView對(duì)象是在空間中顯示數(shù)據(jù)庫(kù)記錄的視圖。這種視圖是一種直接連到一個(gè)CRecordSet對(duì)象的格式視圖,它從一個(gè)對(duì)話框模板資源創(chuàng)建,并將CRecordSet對(duì)象沒(méi)舉的字段顯示在對(duì)話框模板的控件里。對(duì)象利用DDX和RFX機(jī)制,使格式上的控件和記錄集的字段之間數(shù)據(jù)移動(dòng)自動(dòng)化,也就是說(shuō),用戶甚至不要編寫一行代碼就可雹鋒以實(shí)現(xiàn)簡(jiǎn)單的數(shù)據(jù)庫(kù)記錄查看程序。
CDBException類:由Cexception類派生,以三個(gè)繼承的成員變量反映對(duì)數(shù)據(jù)庫(kù)操作時(shí)的異常:
m_nRetCode:以O(shè)DBC返回代碼(SQL_RETURN)的形式表明造成異常的原因。
m_strError:字符串,描述造成拋出異常的錯(cuò)誤原因。
m_strStateNativeOrigin:字符串,用以描述以O(shè)DBC錯(cuò)誤代碼表示的異常錯(cuò)誤。
MFC數(shù)據(jù)庫(kù)類成員函數(shù)都能拋出CDBException類型的異常,所以在代碼對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作后監(jiān)測(cè)異常是正確做法。
MFC ODBC類在實(shí)際開(kāi)發(fā)中應(yīng)用最廣,因?yàn)樗δ茇S富,操作相對(duì)簡(jiǎn)便。
3.MFC DAO(數(shù)據(jù)訪問(wèn)對(duì)象)編程:DAO用于和微軟的Access數(shù)據(jù)庫(kù)接口。在數(shù)據(jù)庫(kù)應(yīng)用程序如果只需與Access數(shù)據(jù)庫(kù)接口時(shí),使用DAO編程較方便。其主要類如下。
CDaoWorkspace:CDaoWorkspace對(duì)象可以讓一個(gè)用戶管理從登陸到離開(kāi)期間,指定的密碼保護(hù)的數(shù)據(jù)庫(kù)會(huì)話全過(guò)程。大多數(shù)情況下不要多個(gè)工作區(qū)也不要?jiǎng)?chuàng)建明確的工作區(qū)對(duì)象。因?yàn)樵诖蜷_(kāi)數(shù)據(jù)庫(kù)和記錄集對(duì)象時(shí),它們可以使用DAO缺省工作區(qū)。
CDaoDatabase:代表一個(gè)連接,類似上述CDatabase類。
CDaoRecordSet:用來(lái)選擇記錄集并操作,類似上述CRecordSet類。
CDaoRecordView:類似上述CRecordView類。
CDaoException:類似上述CDBException類。
CDaoTableDef:表示基本表或附加表的定義。每個(gè)DAO數(shù)據(jù)庫(kù)對(duì)象包括一個(gè)稱為TableDef的收集,包含所有存儲(chǔ)的DAO表定義對(duì)象。CDaoTableDef對(duì)象可以用來(lái)控制表定義。
CDaoQueryDef:CDaoQueryDef對(duì)象表示了一個(gè)查詢定義(querydef)。
CDaoFieldExchange:支持?jǐn)?shù)據(jù)庫(kù)類使用的DAO字段交換(DFX)例程。也可處理事務(wù),類似MFC ODBC類。
MFC DAO僅用來(lái)支持Access數(shù)據(jù)庫(kù),應(yīng)用范圍相對(duì)固定。
4.OLE DB:OLE DB在數(shù)據(jù)提供程序和用戶之間提供了靈活的組件對(duì)象模型(COM)接口,這種靈活性有時(shí)會(huì)使得操作復(fù)雜化。OLE DB框架定義了應(yīng)用的三個(gè)基本類。
數(shù)據(jù)提供程序Data Provider:擁有自己的數(shù)據(jù)并以表格形式顯示數(shù)據(jù)的應(yīng)用程序。提供OLE DB的行集COM接口,期顯示范圍可以從單一數(shù)據(jù)表格的簡(jiǎn)單提供者知道更復(fù)雜的分布式數(shù)據(jù)庫(kù)系統(tǒng)。
使用者Consumers:使用OLE DB接口對(duì)存儲(chǔ)在數(shù)據(jù)提供程序中的數(shù)據(jù)進(jìn)行控制的應(yīng)用程序。用戶應(yīng)用程序歸為使用類。
服務(wù)提供程序Service Provider:是數(shù)據(jù)提供程序和使用者的組合。服務(wù)提供程序沒(méi)有自己的數(shù)據(jù),但使用
OLE DB使用者接口來(lái)訪問(wèn)存儲(chǔ)在數(shù)據(jù)提供程序中的數(shù)據(jù)。然后,服務(wù)提供程序通過(guò)打開(kāi)數(shù)據(jù)提供程序接口使得數(shù)據(jù)對(duì)使用者有效。服務(wù)提供程序常用于向應(yīng)用程序提供高層次服務(wù),比如高級(jí)分布式查詢。
OLE DB編程時(shí),用戶使用組件對(duì)象開(kāi)發(fā)應(yīng)用程序。這些組件有:
枚舉器:用于列出可用的數(shù)據(jù)源;
數(shù)據(jù)源:代表單獨(dú)的數(shù)據(jù)和服務(wù)提供程序,用于創(chuàng)建對(duì)話;
對(duì)話:用于創(chuàng)建事務(wù)和命令;
事務(wù):用于將多個(gè)操作歸并為單一事務(wù)處理;
命令:用于向數(shù)據(jù)源發(fā)送文本命令(SQL),返回行集;
錯(cuò)誤:用于獲得錯(cuò)誤信息。
5.ActiveX數(shù)據(jù)對(duì)象(ADO):是微軟提供的面向?qū)ο蟮慕涌?,與OLE DB類似,但接口更簡(jiǎn)單,具有更廣泛的特征數(shù)組和更高程度的靈活性。ADO基于COM,提供編程語(yǔ)言可利用的對(duì)象,除了面向VC++,還提供面向其他各種開(kāi)發(fā)工具的應(yīng)用,如VB,VJ等。ADO在服務(wù)器應(yīng)用方面非常有用,特別是對(duì)于動(dòng)態(tài)服務(wù)器頁(yè)面ASP(Active Server Page)。
ADO對(duì)象結(jié)構(gòu)類似于OLE DB,但并不依靠對(duì)象層次。大多數(shù)情況下,用戶只需要?jiǎng)?chuàng)建并只使用需要處理的對(duì)象。下面的對(duì)象類組成了ADO接口。
Connection:用于表示與數(shù)據(jù)庫(kù)的連接,以及處理一些命令和事務(wù)。
Command:用于處理傳送給數(shù)據(jù)源的命令。
Recordset:用于處理數(shù)據(jù)的表格集,包括獲取和修改數(shù)據(jù)。
Field:用于表示記錄集中的列信息,包括列值和其他信息。
Parameter:用于對(duì)傳送給數(shù)據(jù)源的命令之間來(lái)回傳送數(shù)據(jù)。
Property:用與操作在ADO中使用的其他對(duì)象的詳細(xì)屬性。
Error:用于獲得可能發(fā)生的錯(cuò)誤的詳細(xì)信息。
在VC++使用ADO需要進(jìn)行COM操作,詳細(xì)方法在此就不贅述了。
在當(dāng)今流行的分布式開(kāi)發(fā)環(huán)境下,VC++6.0在數(shù)據(jù)庫(kù)開(kāi)發(fā)方面有較強(qiáng)的優(yōu)勢(shì),學(xué)會(huì)
在不同的場(chǎng)合選用不同的技術(shù),對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是必要的技術(shù)。
什么是JDBC?什么是ODBC?以及它們有什么區(qū)別?(具體點(diǎn),謝謝?)
—-目前許多
數(shù)據(jù)庫(kù)系統(tǒng)
均支持SQL,對(duì)于由
SQL數(shù)據(jù)庫(kù)
組成的異構(gòu)數(shù)據(jù)庫(kù)系統(tǒng),JDBC和ODBC為訪問(wèn)其異構(gòu)成員提供了統(tǒng)一的方式,也為各異構(gòu)成員之間的協(xié)作和多個(gè)成員之上的操作打下了基礎(chǔ)。本文簡(jiǎn)單介紹了JDBC和ODBC對(duì)各個(gè)異構(gòu)的數(shù)據(jù)庫(kù)進(jìn)行統(tǒng)一訪問(wèn)和協(xié)作的原理及其應(yīng)用。
ODBC
—-ODBC(Open DataBase Connectivity)是
微軟
倡導(dǎo)的、當(dāng)前被業(yè)界廣泛接受的、用于數(shù)據(jù)庫(kù)訪問(wèn)的
應(yīng)用程序編程接口
(API),它以X/Open和 ISO/IEC的調(diào)用級(jí)接口(CLI)規(guī)范為基礎(chǔ),并使用
結(jié)構(gòu)化查詢語(yǔ)言
(SQL)作為其數(shù)據(jù)庫(kù)訪問(wèn)語(yǔ)言。 ODBC總體結(jié)構(gòu)有四個(gè)組件:
—-· 應(yīng)用程序 執(zhí)行處理并調(diào)用ODBC API函數(shù),以提交 SQL語(yǔ)句并檢索結(jié)果。
—-·
驅(qū)動(dòng)程序
管理器(Driver Manager) 根據(jù)應(yīng)用程序需要加載/卸載驅(qū)動(dòng)程序,處理ODBC函數(shù)調(diào)用,或把它們傳送到驅(qū)動(dòng)程序。
—-· 驅(qū)動(dòng)程序 處理ODBC函數(shù)調(diào)用,提交SQL請(qǐng)求到一個(gè)指定的數(shù)據(jù)源,并把結(jié)果返回到應(yīng)用程序。如果有必要,驅(qū)動(dòng)程序修改一個(gè)應(yīng)用程序請(qǐng)求,以使請(qǐng)求與相關(guān)的DBMS支持的語(yǔ)法一致。
—-· 數(shù)據(jù)源 包括用戶要訪問(wèn)的數(shù)據(jù)及其相關(guān)的操作系統(tǒng)、DBMS及用于訪問(wèn)DBMS的網(wǎng)絡(luò)平臺(tái)。
—-ODBC驅(qū)動(dòng)程序的使用把應(yīng)用程序從具體的數(shù)據(jù)庫(kù)調(diào)用中隔離開(kāi)來(lái),驅(qū)動(dòng)程序管理器針對(duì)特定數(shù)據(jù)庫(kù)的各個(gè)驅(qū)動(dòng)程序進(jìn)行集中管理,并向應(yīng)用程序提供統(tǒng)一的標(biāo)準(zhǔn)接口,這就為ODBC的開(kāi)放性奠定了基礎(chǔ)。
—-數(shù)據(jù)庫(kù)獨(dú)立性
—-ODBC是為更大的互用性而設(shè)計(jì)的,要求一個(gè)應(yīng)用程序有用相同的
源代碼
(不用重新編譯或重新鏈接)訪問(wèn)不同的數(shù)據(jù)庫(kù)管理系統(tǒng)(DBMS)的能力。
—-ODBC定義了一個(gè)標(biāo)準(zhǔn)的調(diào)用層接口(CLI)。這包含 X/Open和ISO/IEC的CLI規(guī)范中的所有函數(shù),并蠢燃提供應(yīng)用程序普遍需要的附加函數(shù)。每個(gè)支持ODBC的DBMS需要不同的庫(kù)或驅(qū)動(dòng)程序,驅(qū)動(dòng)程序?qū)崿F(xiàn)ODBC API中的函數(shù)。當(dāng)需要改變驅(qū)動(dòng)程序時(shí),應(yīng)用程序不需要重新編譯或者重新帶拆虛鏈接,只是動(dòng)態(tài)加載新的驅(qū)動(dòng)程序,并調(diào)用其中的函數(shù)即可。如果要同時(shí)訪問(wèn)多個(gè)DBMS系統(tǒng),應(yīng)用程序可加載多個(gè)驅(qū)動(dòng)程序。如何支持驅(qū)動(dòng)程序取決于操作系統(tǒng),例如,在Windows操作系統(tǒng)上,驅(qū)動(dòng)程序是
動(dòng)態(tài)鏈接庫(kù)
(DLL)。
—-使用相同源代碼的應(yīng)用程序訪問(wèn)不同的DBMS,體現(xiàn)了 ODBC的數(shù)據(jù)庫(kù)獨(dú)立性。
—-對(duì)數(shù)據(jù)庫(kù)特殊功能的支持
—-各個(gè)DBMS參照的標(biāo)準(zhǔn)、提供的功能不盡相同,應(yīng)用程序如何以統(tǒng)一的接口使用各個(gè)DBMS特有的功能呢?
—-一方面,ODBC為所有DBMS功能都定義了公共接口。這些DBMS功能比多數(shù)DBMS支持的更多,但只要求驅(qū)動(dòng)程序?qū)崿F(xiàn)這些功能的一個(gè)子集。另一方面,ODBC定義了API和SQL語(yǔ)法一致層,它規(guī)定驅(qū)動(dòng)程序應(yīng)支持的基本功能。 ODBC還提供兩個(gè)函數(shù)(SQLGetInfo和SQLGetFunctions)返回關(guān)于驅(qū)動(dòng)程序和DBMS能力的一般信息及驅(qū)動(dòng)程序支持的函數(shù)列表。因此,應(yīng)用程序可以檢查DBMS支持的特殊功能。
—-這樣,編寫應(yīng)用程序時(shí),就可以檢查并自動(dòng)使用各個(gè)驅(qū)動(dòng)程序?qū)?yīng)的DBMS所支持的特殊功能。這樣做的優(yōu)點(diǎn)是當(dāng)增加DBMS支持的功能時(shí),應(yīng)用程序不需要改變,只需安裝更新的驅(qū)動(dòng)程序,應(yīng)用程序便可以自動(dòng)發(fā)現(xiàn)并使用這些功能。
—-互操作能力
—-通過(guò)使用多個(gè)驅(qū)動(dòng)程序可以御脊同時(shí)訪問(wèn)多個(gè)DBMS系統(tǒng)。 ODBC提供的Driver Manager實(shí)現(xiàn)所有的ODBC函數(shù),多數(shù)是傳遞調(diào)用給驅(qū)動(dòng)程序中的ODBC 函數(shù),并靜態(tài)鏈接應(yīng)用程序,或在應(yīng)用程序運(yùn)行時(shí)加載它。這樣,應(yīng)用程序在Driver Manager 中按名調(diào)用驅(qū)動(dòng)ODBC函數(shù),而不是通過(guò)每個(gè)驅(qū)動(dòng)程序中的指針。當(dāng)應(yīng)用程序需要通過(guò)特定的驅(qū)動(dòng)程序時(shí),它首先需要一個(gè)標(biāo)識(shí)驅(qū)動(dòng)程序的連接句柄。Driver Manager加載驅(qū)動(dòng)程序,并存儲(chǔ)每個(gè)驅(qū)動(dòng)程序中的函數(shù)地址。要使驅(qū)動(dòng)程序調(diào)用一個(gè)ODBC函數(shù),可在應(yīng)用程序調(diào)用 Driver Manager中的函數(shù),并為驅(qū)動(dòng)程序傳送連接句柄,然后Driver Manager使用以前存儲(chǔ)的地址來(lái)調(diào)用函數(shù)。
—-ODBC可以同時(shí)連接到多個(gè)DBMS,解決了同時(shí)訪問(wèn)多個(gè)DBMS的問(wèn)題,提供了異構(gòu)成員數(shù)據(jù)庫(kù)之間互操作的能力。
JDBC
—-JDBC(Java DataBase Connectivity)是Java與數(shù)據(jù)庫(kù)的接口規(guī)范,JDBC定義了一個(gè)支持標(biāo)準(zhǔn)SQL功能的通用低層的應(yīng)用程序編程接口(API),它由Java 語(yǔ)言編寫的類和接口組成,旨在讓各數(shù)據(jù)庫(kù)開(kāi)發(fā)商為Java程序員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫(kù)API。 JDBC API定義了若干Java中的類,表示數(shù)據(jù)庫(kù)連接、SQL指令、結(jié)果集、數(shù)據(jù)庫(kù)元數(shù)據(jù)等。它允許Java程序員發(fā)送SQL指令并處理結(jié)果。通過(guò)驅(qū)動(dòng)程序管理器,JDBC API可利用不同的驅(qū)動(dòng)程序連接不同的數(shù)據(jù)庫(kù)系統(tǒng)。
—-JDBC與ODBC都是基于X/Open的SQL調(diào)用級(jí)接口, JDBC的設(shè)計(jì)在思想上沿襲了ODBC,同時(shí)在其主要抽象和SQL CLI實(shí)現(xiàn)上也沿襲了ODBC,這使得JDBC容易被接受。JDBC的總體結(jié)構(gòu)類似于ODBC,也有四個(gè)組件:應(yīng)用程序、驅(qū)動(dòng)程序管理器、驅(qū)動(dòng)程序和數(shù)據(jù)源。
—-JDBC保持了ODBC的基本特性,也獨(dú)立于特定數(shù)據(jù)庫(kù)。使用相同源代碼的應(yīng)用程序通過(guò)動(dòng)態(tài)加載不同的JDBC驅(qū)動(dòng)程序,可以訪問(wèn)不同的DBMS。連接不同的DBMS時(shí),各個(gè)DBMS之間僅通過(guò)不同的URL進(jìn)行標(biāo)識(shí)。JDBC的 DatabaseMetaData接口提供了一系列方法,可以檢查DBMS對(duì)特定特性的支持,并相應(yīng)確定有什么特性,從而能對(duì)特定數(shù)據(jù)庫(kù)的特性予以支持。與ODBC一樣,JDBC也支持在應(yīng)用程序中同時(shí)建立多個(gè)數(shù)據(jù)庫(kù)連接,采用JDBC可以很容易地用SQL語(yǔ)句同時(shí)訪問(wèn)多個(gè)異構(gòu)的數(shù)據(jù)庫(kù),為異構(gòu)的數(shù)據(jù)庫(kù)之間的互操作奠定基礎(chǔ)。
—-但是,JDBC除了具有ODBC的上述特點(diǎn)外,更具有對(duì)硬件平臺(tái)、操作系統(tǒng)異構(gòu)性的支持。這主要是因?yàn)镺DBC使用的是C語(yǔ)言,而JDBC使用的是Java語(yǔ)言。Java語(yǔ)言具有與平臺(tái)無(wú)關(guān)、移植性強(qiáng)、安全性高、穩(wěn)定性好、分布式、
面向?qū)ο?/p>
等眾多優(yōu)點(diǎn),而JDBC確保了“100%純Java”的解決方案,利用Java的平臺(tái)無(wú)關(guān)性, JDBC應(yīng)用程序可以自然地實(shí)現(xiàn)跨平臺(tái)特性,因而更適合于Internet上異構(gòu)環(huán)境的數(shù)據(jù)庫(kù)應(yīng)用。
—-此外,JDBC驅(qū)動(dòng)程序管理器是內(nèi)置的,驅(qū)動(dòng)程序本身也可通過(guò)Web瀏覽器自動(dòng)下載,無(wú)須安裝、配置;而ODBC驅(qū)動(dòng)程序管理器和ODBC驅(qū)動(dòng)程序必須在每臺(tái)客戶機(jī)上分別安裝、配置。
JDBC和ODBC在Internet上的應(yīng)用
—-JDBC和ODBC由于具有數(shù)據(jù)庫(kù)獨(dú)立性甚至平臺(tái)無(wú)關(guān)性,因而對(duì)Internet上異構(gòu)數(shù)據(jù)庫(kù)的訪問(wèn)提供了很好的支持。
—-在Internet問(wèn)數(shù)據(jù)庫(kù)通常采用三層模式。以JDBC為例,在三層模式中客戶端的Java Applet主要作為
用戶界面
,它不直接與數(shù)據(jù)庫(kù)交換信息,而是通過(guò)自定義的應(yīng)用層網(wǎng)絡(luò)協(xié)議與應(yīng)用服務(wù)器交互,應(yīng)用服務(wù)器通過(guò)JDBC與數(shù)據(jù)庫(kù)服務(wù)器交換信息,并實(shí)現(xiàn)應(yīng)用邏輯。DM3的JDBC和ODBC驅(qū)動(dòng)程序支持目前流行的ASP和P技術(shù),可以分別借助ODBC和JDBC同時(shí)訪問(wèn)Internet上多個(gè)異構(gòu)的數(shù)據(jù)庫(kù)。
—-ASP是面向Web服務(wù)器的技術(shù),客戶端瀏覽器不需要任何附加的軟件支持。ASP使用VBScript之類的
腳本語(yǔ)言
,它在HTML代碼中嵌入某種程序代碼,由HTML代碼負(fù)責(zé)描述信息的顯示樣式,由嵌入的程序代碼來(lái)描述處理邏輯。在ASP 下,VBScript代碼被ASP引擎在Web服務(wù)器端解釋執(zhí)行,執(zhí)行結(jié)果被重新嵌入到HTML代碼中,然后一起發(fā)送給瀏覽器。這里,VBScript代碼可以通過(guò)ODBC訪問(wèn)多個(gè)異構(gòu)的數(shù)據(jù)庫(kù)。
—-P是一種基于Java Servlet的Web開(kāi)發(fā)技術(shù),它和ASP 非常相似,但又有區(qū)別:在P下,嵌入HTML頁(yè)面的程序代碼是Java代碼;頁(yè)面中嵌入的程序代碼被編譯成Servlet(這種編譯操作僅在對(duì)P頁(yè)面的之一次請(qǐng)求時(shí)發(fā)生)并由Java
虛擬機(jī)
執(zhí)行。這里Java代碼可以通過(guò)JDBC訪問(wèn)多個(gè)異構(gòu)的數(shù)據(jù)庫(kù),其平臺(tái)無(wú)關(guān)性特別好。當(dāng)前,Internet上的數(shù)據(jù)庫(kù)應(yīng)用已越來(lái)越多,JDBC和ODBC必將在Internet上的異構(gòu)數(shù)據(jù)庫(kù)訪問(wèn)中發(fā)揮重要的作用。
JDBC:面向關(guān)系的數(shù)據(jù)庫(kù)ODBC:面向?qū)ο蟮臄?shù)據(jù)庫(kù)
ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)VC源代碼的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)VC源代碼,VC源代碼:ODBC數(shù)據(jù)庫(kù)管理系統(tǒng),幾種VC++數(shù)據(jù)庫(kù)開(kāi)發(fā)技術(shù)的比較,什么是JDBC?什么是ODBC?以及它們有什么區(qū)別?(具體點(diǎn),謝謝?)的信息別忘了在本站進(jìn)行查找喔。
成都服務(wù)器租用選創(chuàng)新互聯(lián),先試用再開(kāi)通。
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡(jiǎn)單好用,價(jià)格厚道的香港/美國(guó)云服務(wù)器和獨(dú)立服務(wù)器。物理服務(wù)器托管租用:四川成都、綿陽(yáng)、重慶、貴陽(yáng)機(jī)房服務(wù)器托管租用。
當(dāng)前名稱:VC源代碼:ODBC數(shù)據(jù)庫(kù)管理系統(tǒng) (ODBC數(shù)據(jù)庫(kù)管理系統(tǒng)VC源代碼)
標(biāo)題來(lái)源:http://www.5511xx.com/article/cogigcp.html


咨詢
建站咨詢
