程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 匯編語言 >> 匯編教程:ODBC基礎

匯編教程:ODBC基礎

編輯:匯編語言

這是使用 win32asm進行數據庫編程系列的第一份教程。在如今的IT界,數據庫編程變的越來越重要,所以我們不能再忽視它。但如今有很多種數據庫在使用,如果我們為了實現win32下數據庫匯編語言編程而學習各種數據庫文件格式,所花時間大概稱得上“永恆”。

幸運的是,Microsoft的一項技術使得我們得以擺脫這個大麻煩。它被稱為ODBC,是開放式數據庫互連(Open Database Connectivity)的縮寫,這是一族API,與Windows API相似。它主要與數據庫打交道。就是說,利用ODBC API,你可通過統一界面和好多各不相同的數據庫打交道。

ODBC是如何工作的?它的結構式怎樣的?在使用ODBC之前,你應對它的結構有一個清楚的了解。 ODBC有四個組成部分:

應用程序 (Application,你的程序)

ODBC 管理器 (ODBC manager)

ODBC 驅動程序(ODBC Drivers)

數據源 (Data Sources,數據庫)

這四個組件的核心是ODBC 管理器。 你可把它想象成你的監工。你告訴它你希望他作什麼,然後它把你的要求傳達給它的工人(ODBC 驅動程序)並完成工作。如果工人有什麼想告訴你的,它會與監工(ODBC 管理器)說,由監工傳達給你。工人們很明白他們應作什麼,因此他們會為你很好的完成工作。

通過這樣的模式,我們並不與數據庫驅動程序直接通信。你只需告訴數據庫管理器你想要做什麼。而使用恰當的ODBC驅動程序來實現你的目的則是ODBC管理器的事。每個ODBC 驅動程序對於它所對應的數據庫均有足夠了解。各部件各司其職,極大的簡化了工作量。

你的程序<----> ODBC管理器<----> ODBC驅動程序 <----> 數據庫

ODBC管理器由Microsoft提供。看一下你的控制面板。如果你正確地安裝了ODBC你會找到ODBC數據源(32位) 項目。 至於ODBC驅動程序, Microsoft隨他們的產品提供了好幾種。並且你總可從數據庫提供商那裡獲得新的ODBC 驅動程序。只要簡單地安裝新的ODBC驅動程序,你的機器就可使用新的它以前不知道的數據庫。

ODBC APIs 使用很簡單,但你需要知道一些關於SQL和數據庫的知識。例如字段(field),主鍵(primary key),記錄(record),列(column),行(row)等。我須假定你已知道數據庫理論的一些基礎知識,這樣我才能討論win32下用匯編語言進行ODBC編程的細節問題。正如你所看到的,ODBC 管理器試圖在你的程序裡隱藏實現的細節。這意味著它必須提供某些基本界面來與你的程序和ODBC驅動程序進行通訊。 由於ODBC驅動程序在某些性能方面存在著差異,因此必須存在一種方法,以使得我們的程序能夠知道某個ODBC驅動程序是否支持某一特性。 ODBC定義了被稱為Interface Conformance Levels的三層服務界面。第三層是核心層。任何ODBC驅動程序都要象在第一層和第二層實現功能一樣實現核心層表中的所有特性。從我們的程序的眼光來看, ODBC APIs被分割為這樣的三層。如果某個函數被標為核心的,就意味著你可放心使用而不必擔心它是否為你正使用的ODBC驅動程序支持。如果它是一個第一層或第二層的函數,你就得確認ODBC驅動程序是否支持,然後再使用。你可通過MSDN獲得ODBC APIs的詳細資料。

在編寫代碼之前你應了解一些ODBC的名詞。

環境(Environment). 和字面意思一樣,是一個全局文本用來存取數據。如果你熟悉DAO的話,你可把它想象為一個workspace。它包含應用於所有ODBC session的信息,例如一個session的connections句柄。在用ODBC之前你必須從環境中獲得這個句柄。

連接(Connection). 指定ODBC驅動程序和數據源(數據庫)。你可以在同一環境中同時連接不同的數據庫

語句(Statement). ODBC使用SQL作為自己的語言。 因而只要簡單的認為語句就是你希望ODBC執行的SQL命令就行了。

以下是使用ODBC編程的一般步驟:

連接數據源

創建並執行一條或多條SQL語句

檢查結果記錄(如果有的話)

斷開數據源

在接下來的教程中我們來學習如何來實現這幾步。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved