999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

ODBC的運行機制與編程

2008-12-31 00:00:00伊冀恒
網絡與信息 2008年7期

通過ODBC 管理器可以增添、修改或刪除數據源,也可以增添、刪除ODBC驅動程序,ODBC管理器把數據源和它們的連接信息保存在ODBC. INI、ODBCINST. INI和ODBCISAM.INI中。當需要共享應用程序時,只需按新的數據文件的類型和位置重新登錄即可。

1. ODBC應用程序接口

ODBC API是一組標準的ODBC函數庫,除了一般的數據庫操作函數外,還包括一組函數(如SQLExec或SQLEx- ecdlrect)能夠內嵌標準SQL查詢語句。SQL(StructuredQuery Language,結構化查詢語言)是一種存取關系型數據庫的標準語言,能夠定義、查詢、修改和控制數據,簡單的語句能夠作用于整個數據表格,具有很強的功能。API 函數按功能可分為以下幾類(順序也表示了進行數據庫操作的順序):

(1)數據源連接函數,設置/獲取有關信息的函數;

(2)準備/提交執行SQL查詢語句的函數和獲得數據的函數;

(3)終止函數和異常處理函數。

有兩個問題需要特別說明:一是數據類型問題,數據源中的數據所具有的數據類型稱為SQL數據類型,不一定和ODBCSQL數據類型存儲方式一致,驅動程序把這些數據類型同ODBCSQL數據類型進行相互轉換;二是函數的調用級別問題,并不是每一個ODBC驅動程序都支持所有的ODBC API函數調用。

2.ODBC應用編程

在Visual C++中,MFC(Microsoft Foundation Class)為ODBC預定義了幾個類,其中主要的是數據庫類和記錄集合類。CDatabase的每一個對象代表了一個數據源的連接,CRecordset的每一個對象代表了從一個數據表中按預定的查詢條件獲得的記錄的集合,一般說來,前者適宜于對數據源下的某個數據表格進行整體操作,后者用于對所選的記錄集合進行處理。

在應用編程時,一般使用CDatabase和CRecordset的派生類。假設派生類分別為CUserdb和CUserset,而在應用類CUserClass中,使用了一個CUserdb對象(m-db)和一個Cuserset對象。

2.1m-db連接數據源

m-db在完成定義構造后,要調用 CDatabase的打開(Open)函數以進行數據源的實際連接:

m-db.Open(lpszDSN,bExclusive,bReadOnly,lpsz-Connect)

打開函數需要輸入四個參數。lpszDSN:要連接的數據源的名字,如果 IpszDSN = NULL且 lpszConnect 中也沒有指明數據源名,則該調用會自動出現一個對話框列出所有可用的數據源(名),讓用戶選擇。bExclusive:只支持“假”(False)值,表示為共享(share)方式連接。ReadOnly:指明數據源操作方式是“只讀”還是可以修改。lpszConnect:指明連接字符串,包括數據源名、用戶標識碼、口令等信息。該字符串必須以“ODBC;”開頭,表示該連接是與一個ODBC數據源的連接(考慮以后版本支持非ODBC數據源)。

2.2m-db操作數據

數據源打開后,即可對數據庫文件中的數據表格進行操作,操作以調用SQL語句方式進行,可直接通過ODBC API函數,或者CDatabase類成員函數ExecuteSQL。數據表名在SQL 語句中指定,如下語句則在所在的數據源中的 clerk 表中插入一個記錄,記錄的name字段值為“chen”。

m-db.ExecuteSQL("insert into clerk (name) value('chent')")

2.3m-recset操作數據

記錄集合生成后,其當前記錄的各字段值被保存在前述的各字段變量中,如果調用CRecordset的滾動函數,如MoveFirst,MoveNext,MovePrev,MoveLast等,字段變量的值將自動跟隨“當前”記錄的位置的變化而變化。IsBOF,IsEOF用于判別是否移動到記錄的頭或尾。對于AddNew和Edit,修改字段變量后一定要調用函數Update,否則更新將丟失;而Delete操作則不必進行字段值修改和調用Update。在多用戶系統使用時,每一個數據源可以被多個用戶的多個任務連接,不同的任務可同時修改相同的數據源。ODBC 提供了兩種數據表更新的同步機制(在m-recset.Open函數中指定),“靜態”的和動態的。前者是一組靜態的記錄集合,當建立后不會改變,除了反映自己的添加/刪除外,不反映別的用戶的修改,除非調用了Requery重新建立。后者是一組動態的記錄集合,自己或別的用戶所作的修改隨時反映到集合中來(當然也可用Requery重建),以保持記錄與數據源的同步。

3.總結

從以上討論可以看出,ODBC應用接口十分簡便!再加上Visual C++ 中的AppWizard和ClassWizard自動生成框架代碼功能,連接一個數據源,生成一個CRecordset對象,就更快捷了。應用程序只需關心數據的處理而不必費心數據的存取,另外,另一個與ODBC有關的類CRecordView,是一個窗口類CWnd的派生類,建立在CRecordset上,可直接構造數據庫記錄顯示窗口,某些情況下也不妨一用。

主站蜘蛛池模板: 中文无码精品A∨在线观看不卡 | 色爽网免费视频| 久久久久久久97| 国产特一级毛片| 久久精品中文无码资源站| 国产黄视频网站| 国产精品香蕉| 亚洲精品视频免费看| 欧美综合中文字幕久久| 四虎国产在线观看| 青青极品在线| 欧美一级黄片一区2区| 99草精品视频| 美女免费黄网站| 日韩精品专区免费无码aⅴ| 国产在线自在拍91精品黑人| 色婷婷丁香| 午夜日本永久乱码免费播放片| 黄色网在线免费观看| 九色综合视频网| 女人18毛片一级毛片在线 | 国产真实乱了在线播放| 久久美女精品| 成人免费黄色小视频| 色有码无码视频| 亚洲色图欧美激情| 免费视频在线2021入口| 丰满人妻中出白浆| 热久久国产| 免费高清毛片| 一本无码在线观看| 日本www色视频| 日韩经典精品无码一区二区| 日韩 欧美 国产 精品 综合| 人妻无码一区二区视频| 国产成本人片免费a∨短片| 少妇极品熟妇人妻专区视频| 97超爽成人免费视频在线播放| 亚洲精品无码久久久久苍井空| 国产女人综合久久精品视| 2024av在线无码中文最新| 丰满的熟女一区二区三区l| 天堂网亚洲系列亚洲系列| 欧美中文字幕在线视频| 国产原创自拍不卡第一页| 亚洲欧美成人| 久久久久人妻一区精品| 精品国产aⅴ一区二区三区 | 国产经典免费播放视频| 六月婷婷精品视频在线观看| 香蕉网久久| 国产一区二区网站| 亚洲视频一区在线| 色婷婷色丁香| 91在线播放免费不卡无毒| 国产精品黄色片| 久久久久久久久久国产精品| 大学生久久香蕉国产线观看| 亚洲色欲色欲www网| 免费看久久精品99| 国产精品观看视频免费完整版| 国产成人精品第一区二区| 国产99精品久久| 久久这里只有精品国产99| 国产精品jizz在线观看软件| 婷婷色婷婷| 91青青草视频在线观看的| 亚洲国产欧美中日韩成人综合视频| 国产浮力第一页永久地址 | 嫩草在线视频| 亚洲成a人片7777| 国产区免费精品视频| 热久久这里是精品6免费观看| 啪啪永久免费av| 91视频99| 国产区精品高清在线观看| 国产女人喷水视频| 无码网站免费观看| 国产在线观看第二页| 五月婷婷丁香综合| 亚洲av无码成人专区| 亚洲AV一二三区无码AV蜜桃|