設計Microsoft Windows NT操作系統上的32位SQL Server 應用程序
Christopher Moffatt
Microsoft Technical Resources Group
摘要
Microsoft® Windows NT™操作系統是建立充滿活力、功能豐富的Microsoft SQL Server應用程序的一個完美的平台。SQL Server Programmer's Toolkit for Windows NT(SQL Server 程序員Windows NT工具包)含有DB-Library™的32位(Win32™ API)版本,使得開發Windows NT操作系統上的用於Microsoft SQL Server的DB-Library客戶端程序成為可能。
這篇技術文章用於將DB-Library開發人員引入到Microsoft Windows NT平台上,討論的問題包括將已有的Windows™ 3.x和OS/2®操作系統平台上的DB-Library應用程序轉換到Windows NT操作系統,並對DB-Library應用程序如何利用Win32應用程序編程接口(API,application programming interface)的一些方法進行了概要說明。
本篇技術文章假定你已熟悉DB-Library API、C語言編程以及下列內容:
· Microsoft SQL Server Programmer's Reference for C
· Microsoft Win32 API Programmer's Reference, 第1、2卷
· Converting OS/2 Applications to Windows
建立基於Win32的DB-Library應用程序
下面的章節描述了有關使用Microsoft® Win32™應用程序編程接口(API,Application Programming Interface)建立DB-Library™應用程序的應用。
Win32 DB-Library體系結構
在內部機制上,Win32的DB-Library動態鏈接庫(DLL,dynamic-link library)與OS/2®上的實現方式類似。與在OS/2的一樣,在Win32中一個獨立的操作系統線程(thread)處理每次DB-Library所發出的與SQL Server的聯接。通過調用一個進程(process)所裝入的每個DB-Library DLL實例(instance)在共享代碼的同時得到了一個私有數據區。
Win32 DB-Library體系結構與在Microsoft Windows™ 3. x中的實現方式不同。在Windows 3.x中,DB-Library DLL只有一個被所有調用的進程共享的數據段。W3DBLIB.DLL通過對單一數據段的聯接的一個鏈接式列表維護DB-Library聯接。這種體系結構是需要的,因為在Windows 3.x動態鏈接庫只有一個被所有調用進程共享的數據段。這樣就必須通過調用dbinit和dbwinexit函數初始化和清除DB-Library DLL數據結構。
庫
Win32的DB-Library函數包含於NTWDBLIB.DLL中,而命名管道(named pipe)驅動程序包含在DBNMPNTW.DLL中。應設置PATH環境變量包含這些動態鏈接庫所在的目錄。
另一個文件,NTWDBLIB.LIB,包含了你的應用程序使用Win32 API的引入(import)定義。應設置LIB環境變量包含NTWDBLIB.LIB所在的目錄。