DB2和Visual Studio .NET開發(fā)慨述
概述
DB2 擁有廣泛的開發(fā)擁護(hù)者,涵蓋了 .NET 和 J2EE™ 平臺。就應(yīng)用程序開發(fā) API 和應(yīng)用程序開發(fā)工具而言,這些開發(fā)人員具有他們自己強(qiáng)烈的偏好。IBM 一直都意識到這兩大陣營的重要性,并同時迎合兩方的需要。
對于 Windows® Java™ 開發(fā)人員,IBM 具有 JDBC™ 和 JCC 驅(qū)動程序方面的強(qiáng)大產(chǎn)品,單獨的 DB2 Development Center,以及用于 WebSphere® 和 Rational Studio® IDE 的集成插件。
對于 .NET Windows 開發(fā)人員,IBM 意識到有更緊密地集成到該環(huán)境中的強(qiáng)烈需求。IBM 強(qiáng)烈承諾支持 .NET 平臺,特別是 Visual Studio .NET,從 2002 年初以來,后者就已經(jīng)是 Microsoft Visual Studio Integrator Program(VSIP)的組成部分。IBM 已經(jīng)交付了一個本機(jī) .NET 托管提供程序和一套緊密集成的 Visual Studio 2002 和 2003 IDE 工具。
本文主要關(guān)注 IBM 當(dāng)前在 Windows 客戶平臺上對于 .NET 的支持。
集成功能
一些 .NET 平臺和 Visual Studio .NET 上的關(guān)鍵集成部件包括:
DB2 .NET 托管提供程序(DB2 .NET Managed Provider) - 該本機(jī) DB2 .NET 托管提供程序使應(yīng)用程序開發(fā)人員可以使用標(biāo)準(zhǔn) ADO.NET 編程模型構(gòu)建并運行應(yīng)用程序。它為 DB2 提供了更好級別的支持,勝過 DB2 的 ODBC 和 OLE DB 通用(generic)托管提供程序。 解決方案資源管理器(Solution Explorer) - 該 DB2 數(shù)據(jù)庫項目模板支持將基于腳本的開發(fā)作為 Visual Studio 解決方案的標(biāo)準(zhǔn)集,支持多個配置、源控制管理、項目和項目項構(gòu)建次序,以及使用內(nèi)建編輯器和調(diào)試器編輯和調(diào)試 SQL 腳本。 服務(wù)器資源管理器(Server Explorer) - 該 IBM Explorer 提供與 Visual Studio 服務(wù)器資源管理器相同的觀感(look and feel),支持使用拖放功能進(jìn)行目錄訪問和快速的 .NET 應(yīng)用程序開發(fā)。 SQL 向?qū)?SQL Wizards) - 這組功能豐富、易于使用的向?qū)еС滞ㄟ^ Solution Explorer 或 Server Explorer 創(chuàng)建新的服務(wù)器端表、視圖、索引、觸發(fā)器、過程和函數(shù)。 SQL 編輯器(SQL Editor) - 這個內(nèi)建的 Visual Studio 文本編輯器已經(jīng)擴(kuò)展為提供對 DB2 SQL 腳本的本機(jī)支持,具有“智能感知(intelisense)”和語法的彩色化顯示(colorization)以及高級腳本選項。 SQL 調(diào)試器(SQL Debugger) - 這個內(nèi)建的 Visual Studio 調(diào)試器已經(jīng)擴(kuò)展為提供對 DB2 SQL 例程的調(diào)試支持,允許將跨平臺 SQL 存儲過程的源代碼級別調(diào)試作為 DB2 數(shù)據(jù)庫項目的一部分。 動態(tài)幫助(Dynamic Help) - 這個 Visual Studio 上下文敏感幫助已經(jīng)擴(kuò)展為提供 DB2 .NET 托管提供程序和 Visual Studio AD 工具的在線幫助。 DB2 工具(DB2 Tools)工具欄 - 可以使用 DB2 Tools 工具欄直接從 Visual Studio IDE 啟動各種 DB2 開發(fā)和管理中心。可用性
最初,DB2 AD Tools for Visual Studio .NET 是作為 DB2 和 DB2 Connect V8.1.2 的組成部分發(fā)布的。這里所描述的功能是于 2004 年 10 月發(fā)布的 DB2 和 DB2 Connect V8.2 中的一部分。
平臺支持矩陣
下表有助于說明每種 DB2 服務(wù)器平臺的支持級別。請注意“分布式”列是指 Windows 和 UNIX® 服務(wù)器平臺。
表 1. DB2 平臺支持矩陣
功能 z/OS iSeries® 分布式 服務(wù)器級別V6, V7, V8V5r1, V5r2V8客戶機(jī)級別Connect V8.2Connect V8.2ADC V8.2托管提供程序YesYesYes工具箱 ADO.NETYesYesYesSQL 調(diào)試器NoNoYes數(shù)據(jù)庫項目YesYesYesIBM ExplorerYesYesYes表向?qū)esYesYes索引向?qū)esYesYes觸發(fā)器向?qū)esYesYesSQL 過程向?qū)esYesYesCLR 過程向?qū)oNoYesSQL 函數(shù)向?qū)es(標(biāo)量)Yes(標(biāo)量)Yes(標(biāo)量/表)IIS WebMethodsYesYesYesWAS Web 服務(wù)NoNoYes
IBM Informix® .NET 本機(jī)數(shù)據(jù)提供程序是與 IBM Informix Client SDK 一起發(fā)布的。SDK 的 2.90 版本包含了對 IDS .NET 托管提供程序有限的工具(tooling)支持。Visual Studio 工具箱的 Data 選項卡已經(jīng)擴(kuò)展為列出 IDS ADO.NET 對象。您可以在 Win 和 Web 表單容器上拖放這些對象。您還可以使用定制(custom)編輯器定制這些對象。
在安裝 IDS 客戶機(jī) SDK 時,將自動安裝和配置 .NET 托管提供程序和 Visual Studio 工具。
IBM DB2 Everyplace 支持(DB2e)
developer 上的 DB2e 教程
DB2e 托管提供程序有兩個版本,即 Data.DB2.DB2e (在 .NET Framework 上運行)和 IBM.Data.DB2.DB2e.CF (在 .NET Compact Framework 上運行)。
僅僅從 V8.1.4 開始,才為 Data.DB2.DB2e 提供程序提供了基本 RAD 工具(tooling)。該工具提供與 VS.NET 數(shù)據(jù)工具箱(Data Toolbox)的集成,開發(fā)人員可以在其中設(shè)置 DB2e ADO.NET 對象(如 DB2eConnection、DB2eCommand、DB2eDataAdapter 等等)的屬性。
DB2 托管提供程序
DB2 .NET 托管提供程序允許使用標(biāo)準(zhǔn) ADO.NET 編程模型,開發(fā)以數(shù)據(jù)為中心的應(yīng)用程序。雖然 .NET 開發(fā)人員可以選擇使用 ODBC、OLE DB 或本機(jī)提供程序來開發(fā)他們的 DB2 應(yīng)用程序,但當(dāng)談到 RAD 工具和性能時,本機(jī)提供程序就應(yīng)該是您的第一選擇。
提供程序?qū)ο竽P?/STRONG>
像所有其他 ADO.NET 提供程序一樣,DB2 托管提供程序?qū)崿F(xiàn)了相同的標(biāo)準(zhǔn) ADO.NET 類集和方法集。這些類是在 IBM.Data.DB2 名稱空間下定義的。
圖 1. DB2 ADO.NET 對象模型
主要的類集包括:
DB2Connection - 該數(shù)據(jù)連接類支持您指定用于連接目標(biāo) DB2 服務(wù)器的連接串。默認(rèn)啟用連接池(connection pooling)。open 和 close 方法調(diào)用實際上可能轉(zhuǎn)換成在應(yīng)用程序連接池中保留和釋放一個實時(live)連接。
DB2Command - 該命令對象支持使用數(shù)據(jù)連接對象執(zhí)行任何受支持的 SQL 語句或存儲過程。命令執(zhí)行還支持可選的超時(timeout)值。
DB2DataAdapter - 該數(shù)據(jù)適配器對象包含四個可選命令,用于可能成為 SQL 語句或存儲過程調(diào)用的選擇、插入、更新和刪除操作。
DB2DataReader - 您一般使用 DB2DataReader 對斷開連接的結(jié)果集進(jìn)行單向(forward-only)的快速訪問,這些斷開連接的結(jié)果集是執(zhí)行 SQL 語句或存儲過程調(diào)用所返回的。
性能優(yōu)勢
正如前面所說的,雖然您可以選擇使用 ODBC 或 OLE DB 提供程序,但是 .NET 本機(jī)提供程序?qū)a(chǎn)生最佳性能,因為它消除了 DB2 上額外的 ODBC、OLE DB 層。
本實驗室已經(jīng)對這三種支持的托管提供程序進(jìn)行了內(nèi)部性能測試,我們在不同行數(shù)中測試了大小不同的兩行的數(shù)據(jù)檢索。結(jié)果清楚表明本機(jī) DB2 .NET 托管提供程序提供了最佳的性能數(shù)據(jù)。
DB2 .NET 托管提供程序中所包含的一些性能增強(qiáng)包括 MTS 支持、松散耦合事務(wù)、延遲加入(delayed enlistment)等。
圖 2. DB2 提供程序性能
腳本編制向?qū)?/STRONG>
DB2 V8.2 Development Add-In 新的關(guān)鍵增強(qiáng)之一就是具有一組功能豐富的腳本編制向?qū)В糜跒楸怼⒁晥D、觸發(fā)器、索引、存儲過程和函數(shù)生成所需的 CREATE DDL。
向?qū)Ц攀?/STRONG>
有兩個地方啟動 DB2 腳本編制向?qū)В謩e是從 Solution Explorer 視圖中的 DB2 Database Project 和 IBM Explorer 視圖中的 DB2 Data Connection。
這些腳本編制向?qū)е笇?dǎo)您通過一系列步驟,以定制用于創(chuàng)建新的 DB2 模式對象和例程的 DDL 和 SQL 語句。
當(dāng)從 IBM Explorer 啟動向?qū)r,您可以直接執(zhí)行所生成的 DDL,或選擇將之添加到新的或現(xiàn)有的 DB2 數(shù)據(jù)庫項目中。
當(dāng)從 Solution Explorer 啟動向?qū)r,所生成的腳本就添加到了您的 DB2 數(shù)據(jù)庫項目中,用于稍后的編譯或項目構(gòu)建。這些 DB2 腳本編制向?qū)П扔糜?SQL 服務(wù)器的通用數(shù)據(jù)庫項目將會給予您更大的好處。
表向?qū)?和導(dǎo)入對話框)
該表向?qū)г试S生成用于 DB2 服務(wù)器家族的 CREATE TABLE DDL。您可以指定高級值選項(identity、generated 等等)、惟一鍵、外鍵、主鍵和檢查約束。
表向?qū)У囊粋€關(guān)鍵功能就是可以使用公共導(dǎo)入列對話框從該數(shù)據(jù)連接中的其他表和視圖導(dǎo)入列定義,許多其他插件向?qū)Ш蛯υ捒蛞彩褂眠@個公共導(dǎo)入列對話框。該功能支持克隆表以及定義外鍵列。
索引向?qū)?/STRONG>
索引向?qū)г试S定義用于 DB2 服務(wù)器家族的 CREATE INDEX DDL。您可以在索引上指定高級選項,以及用 ascending 或 descending order 子句在同一索引中定義多個列。該向?qū)ё詣訖z測所索引的基表的列定義。
觸發(fā)器向?qū)?/STRONG>
觸發(fā)器向?qū)г试S定義用于 DB2 服務(wù)器家族的 CREATE TRIGGER DDL。您可以為表和視圖創(chuàng)建觸發(fā)器,其中將自動檢測表和視圖的定義。還支持 Instead Of 觸發(fā)器。您可以定制所有的觸發(fā)器 DDL 選項,包括何時觸發(fā)、頻率和動作等。
視圖向?qū)?/STRONG>
視圖向?qū)г试S定義用于 DB2 服務(wù)器家族的 CREATE VIEW DDL。您可以使用內(nèi)建模式智能感知支持來輕而易舉地為視圖定義所需的 SQL 查詢。
SQL 過程向?qū)?/STRONG>
SQL 存儲過程向?qū)г试S定義用于 DB2 服務(wù)器家族的 CREATE PROCEDURE DDL 和例程體。您可以定義零個或多個結(jié)果集,自動發(fā)現(xiàn)或?qū)雲(yún)?shù),以及使用模式智能感知來編碼例程體。該向?qū)н€允許您為 z/OS SQL 存儲過程指定高級 SQL 構(gòu)建選項,或使用連接級默認(rèn)構(gòu)建選項。
SQL 函數(shù)向?qū)?/STRONG>
SQL 用戶定義的函數(shù)向?qū)г试S定義用于 DB2 服務(wù)器家族的標(biāo)量或列表函數(shù)的 CREATE FUNCTION DDL 和例程體。返回類型以及所有輸入?yún)?shù)都是自動發(fā)現(xiàn)的。您可以使用模式智能感知來編碼函數(shù)例程體。
DB2 數(shù)據(jù)庫項目
通過 Visual Studio Solutions Explorer,您可以創(chuàng)建一個或多個特定于 DB2 的腳本編制項目來管理服務(wù)器腳本的執(zhí)行。腳本文件可以包含任何所支持的 DDL、DML 和 DCL SQL 語句。
項目概述
DB2 數(shù)據(jù)庫項目是一個全功能的 Visual Studio 項目模板,支持多個配置、編譯/構(gòu)建、項目構(gòu)建次序、源控制管理和版本控制以及啟動例程。
您可以使用基于文本的腳本模板創(chuàng)建新的項目項,或直接啟動前面詳述的任何一種腳本編制向?qū)頌楦鞣N DB2 對象生成所需的 CREATE DDL。
DB2 數(shù)據(jù)庫項目的全功能支持使其遠(yuǎn)遠(yuǎn)優(yōu)于有限的通用 SQL Server 數(shù)據(jù)庫項目。
多個配置支持
Visual Studio 中的解決方案支持多個配置(multi-configuration)選項,其中的項目項可以用不同的項目和項目項屬性組來構(gòu)建,取決于所選的配置。
DB2 數(shù)據(jù)庫項目完全支持這個多個配置功能。在 Linux、UNIX 和 Windows 上應(yīng)用于 SQL 存儲過程的調(diào)試構(gòu)建(build for debug)或發(fā)布構(gòu)建(build for release)利用這一新功能來為這些存儲過程生成所需的調(diào)試信息。此外,您可以為每個配置指定一組不同的 z/OS® SQL 構(gòu)建選項和一個不同的目標(biāo)數(shù)據(jù)連接,用以編譯您的腳本文件。因此,從測試數(shù)據(jù)連接到產(chǎn)生數(shù)據(jù)連接,您都可以通過簡單的配置名稱切換部署相同的腳本集。
項目項構(gòu)建次序
您的項目腳本項的默認(rèn)構(gòu)建次序是按照它們在項目中的添加次序來進(jìn)行構(gòu)建。往往,您需要一個不同的基于腳本依賴性的構(gòu)建次序。例如,需要在創(chuàng)建訪問一組表的存儲過程之前,先創(chuàng)建這組表。
您可以使用項目項構(gòu)建次序,這個 DB2 數(shù)據(jù)庫項目獨有的功能,來定義特定于配置的腳本項構(gòu)建次序。
源版本控制
與 Visual Studio 中大多數(shù)其他項目模板一樣,DB2 數(shù)據(jù)庫項目實現(xiàn)了合適的接口,用于與任何配置的源控制管理系統(tǒng)(如 Clear Case 或 Visual Source Safe)進(jìn)行集成。
SQL 編輯器
標(biāo)準(zhǔn)的 Visual Studio .NET 文本編輯器和語言服務(wù)已經(jīng)擴(kuò)展為支持特定于 DB2 的腳本語法色彩化顯示、數(shù)據(jù)連接模式智能感知、高級腳本編制選項和 SQL 代碼段插入。
一些高級腳本編制選項包括可以指定可折疊的(collapsible)代碼區(qū)域(也稱作隱藏文本)、編譯錯誤忽略、結(jié)果集輸出捕獲和特定于平臺的編譯。
啟動過程
通過 DB2 數(shù)據(jù)庫項目屬性,您可以指定編譯數(shù)據(jù)連接,以及啟動存儲過程和參數(shù)值。當(dāng)您運行或調(diào)試 DB2 數(shù)據(jù)庫項目時,就調(diào)用該啟動存儲過程。默認(rèn)動作就是在執(zhí)行存儲過程之后進(jìn)行回滾。這可以使用用戶選項 XML 文件來進(jìn)行修改。
IBM Explorer
IBM Explorer 是一個引入的新視圖,用以支持特定于 DB2 的托管提供程序數(shù)據(jù)連接。該視圖為 Server Explorer 數(shù)據(jù)連接提供更大功能。然而,這一附加功能并沒有改變 Server Explorer RAD 編程圖。
IBM Explorer 數(shù)據(jù)連接使用 tables、views、procedures 和 functions 文件夾顯示目錄信息。除了這些目錄文件夾,新的數(shù)據(jù)適配器文件夾允許定義可重用的 ADO.NET 數(shù)據(jù)適配器,可跨應(yīng)用程序與其他團(tuán)隊成員共享這些數(shù)據(jù)適配器。
發(fā)現(xiàn)
在添加數(shù)據(jù)連接時,您可以添加本地和遠(yuǎn)程數(shù)據(jù)庫連接。如果在服務(wù)器平臺上啟用了 DB2 Admin Server,就可以發(fā)現(xiàn)遠(yuǎn)程連接。您可以添加本地已編目的遠(yuǎn)程連接,或者通過僅僅為服務(wù)器字段指定 host_name:port_number 進(jìn)行。
多個命名連接和篩選
使用 IBM Explorer,您可以向同一目標(biāo) DB2 服務(wù)器和數(shù)據(jù)庫添加多個數(shù)據(jù)連接,每個都具有一個惟一的名稱。多個連接與文件夾級的篩選器相結(jié)合,可用于在同一數(shù)據(jù)庫上投影不同的視圖。這一篩選功能允許您減少與您應(yīng)用程序組件相關(guān)的目錄信息量。
緩存和刷新
IBM Explorer 早期設(shè)計目標(biāo)之一就是使開發(fā)人員可以在斷開連接的模式下工作。目錄信息在客戶機(jī)工作站進(jìn)行本地緩存。隨后 Visual Studio IDE 的啟動將重用該緩存的目錄信息。
為了幫助用戶識別陳舊數(shù)據(jù),在文件夾級別顯示了一個時間戳(time-stamp)屬性,用以反映檢索緩存信息的最新日期和時間。您隨時可以選擇從服務(wù)器刷新該緩存器。
對表和視圖的支持
在檢索目錄數(shù)據(jù)之前,可能要篩選 tables 和 views 文件夾。通過這些文件夾,您可以啟動合適的向?qū)韯?chuàng)建新的表和視圖。您可以檢索表和視圖數(shù)據(jù),更改數(shù)據(jù),以及將更新傳回服務(wù)器。您可以刪除這些對象或生成 CREATE DDL 腳本,以進(jìn)一步進(jìn)行編輯。
關(guān)于表和視圖的詳細(xì)視圖允許您為這些對象管理索引和觸發(fā)器。
您可以在窗體設(shè)計器上拖放表和視圖,以自動生成和配置所需的 ADO.NET 組件托盤對象。
對過程和函數(shù)的支持
在檢索目錄數(shù)據(jù)之前,可能要篩選 procedures 和 functions 文件夾。您可以通過啟動合適的腳本編制向?qū)В苯訌倪@些文件夾創(chuàng)建新的 SQL 過程和函數(shù)。您還可以對這些對象執(zhí)行測試運行。默認(rèn)情況下,在從 IBM Explorer 執(zhí)行過程或函數(shù)之后,會發(fā)出一個回滾。通過在 userOptions.xml 文件中更改合適的值,您可以在執(zhí)行后強(qiáng)制提交。此外,您可以刪除過程和函數(shù),或查看它們的編目源代碼,以進(jìn)一步進(jìn)行編輯。
您可以在窗體設(shè)計器上拖放過程和函數(shù),以自動生成和配置所需的 ADO.NET 組件托盤對象。
可重用的數(shù)據(jù)適配器
ADO.NET 數(shù)據(jù)適配器是功能強(qiáng)大的數(shù)據(jù)對象,因為它們封裝了插入、更新、刪除和查詢操作。開發(fā)人員花費了大量時間定義和定制這些數(shù)據(jù)適配器;然而,不可以在窗體間,跨項目,或在用戶間共享它們。
IBM Explorer 數(shù)據(jù)連接在 DB2 數(shù)據(jù)連接下引入了這個新的文件夾,允許用戶定義和重用數(shù)據(jù)適配器。相同的 RAD 功能集可用于在 win 和 Web 窗體設(shè)計器上拖放這些適配器,以及預(yù)覽和修改這些數(shù)據(jù)適配器所檢索的數(shù)據(jù)。
一旦在數(shù)據(jù)連接中定義了數(shù)據(jù)適配器,您就可以為這些適配器自動生成數(shù)據(jù)集,并將數(shù)據(jù)集定義添加到項目中。該工作的進(jìn)行不需要在窗體設(shè)計器上拖放適配器。然后,您可以在應(yīng)用程序開發(fā)中使用格式化和類型化的數(shù)據(jù)集,包括可以使用數(shù)據(jù)窗體向?qū)蓴?shù)據(jù)窗體。
可重用數(shù)據(jù)適配器的一個強(qiáng)大功能就是可以將其部署到 DB2 嵌入的 WebSphere 應(yīng)用程序服務(wù)器上,或可以生成 IIS web 方法,用以部署為 web 服務(wù)。這一零代碼(zero-code)操作支持快速將數(shù)據(jù)連接 SQL 或 存儲過程部署為 Web 服務(wù)。
可重用數(shù)據(jù)適配器的另一有趣功能是可以導(dǎo)入一個或多個數(shù)據(jù)適配器,以及將其作為 XML 文件導(dǎo)出,以用于與其他用戶共享,或用于在源控制管理中進(jìn)行簽入(check-in)/簽出(check-out)。
DB2 RAD 和 Visual Studio .NET
DB2 V8.2 Development Add-In for Visual Studio .NET 提供了兩個關(guān)鍵的應(yīng)用程序開發(fā)功能:即前面所詳述的使用腳本開發(fā)服務(wù)端模式和邏輯,以及使用快速應(yīng)用開發(fā)(RAD)功能開發(fā)客戶端或中間層 ADO.NET 應(yīng)用程序組件。
IBM Explorer 中的拖放
您可以拖動任何一個 IBM Explorer 模式和邏輯對象,然后將之放在 winform 和 webform 設(shè)計器上。該拖放(drag-and-drop)操作將自動生成所需的 ADO.NET 連接、命令和數(shù)據(jù)適配器對象,并將其添加到窗體的組件托盤上。
此外,您可以從您連接的 Adapters 文件夾中拖放預(yù)先配置的 ADO.NET 數(shù)據(jù)適配器,并將其放在組件托盤上。
工具箱控制
在使用基于組件的對象(如窗體或 Web 服務(wù)設(shè)計器)時,您可以直接從工具箱的 Data 區(qū)域拖放對象,并將其放在設(shè)計器畫布(canvas)上。當(dāng) DB2 .NET 托管提供程序在您的系統(tǒng)上注冊時,將自動向工具箱添加 DB2Connection、DB2Command 和 DB2DataAdapter 對象。
不像 IBM Explorer 中的拖放,為了進(jìn)行正確的操作,必須使用下面所列的定制 ADO.NET 編輯器配置工具箱對象。
連接串編輯器
連接串編輯器允許您配置組件托盤 DB2Connection 對象。連接串是基于您所選擇的 IBM Explorer 數(shù)據(jù)連接和所輸入的用戶名/密碼自動生成的。
數(shù)據(jù)適配器向?qū)?/STRONG>
DB2 數(shù)據(jù)適配器配置向?qū)Э捎糜谠O(shè)置您的組件托盤數(shù)據(jù)適配器選項,包括數(shù)據(jù)連接、select 命令、insert 命令、delete 命令和 update 命令。
該向?qū)Э梢杂糜诙x直接執(zhí)行 SQL 或調(diào)用存儲過程的命令。
您還可以通過發(fā)現(xiàn)結(jié)果集或手工定義一個或多個返回結(jié)果集,來定義 select 命令的形式是一條 SQL 語句還是存儲過程調(diào)用。
對于存儲過程,您可以將該存儲過程的的輸入和輸出參數(shù)映射到 select 命令中所定義的數(shù)據(jù)集源列。
命令編輯器
命令編輯器可用于配置組件托盤中找到的 DB2Commands。單獨的命令編輯器中使用用于定義各種數(shù)據(jù)適配器的同一的 UI 元素集。在您的 SQL 語句中找到的 SQL 參數(shù)是自動發(fā)現(xiàn)的,但也可以手工定義。
生成數(shù)據(jù)集
一旦配置了數(shù)據(jù)適配器,您就可以生成數(shù)據(jù)集定義了,該數(shù)據(jù)集將存儲您的數(shù)據(jù)適配器斷開連接的結(jié)果集。生成數(shù)據(jù)集對話框既允許您生成新的數(shù)據(jù)集,又支持在現(xiàn)有的項目數(shù)據(jù)集中包含結(jié)果集數(shù)據(jù)表。
一旦定義了數(shù)據(jù)集,您就可以選擇在組件托盤上包含該數(shù)據(jù)集對象實例,用以將數(shù)據(jù)源快速映射到窗體設(shè)計器中的窗體控制。
CLR 過程和函數(shù)
長期以來,DB2 一直支持大量的存儲過程編程語言,包括 C、Java、Perl、Cobol 和 REXX 等等。為了支持所有 CLR 語言,如 C# 和 Visual Basic,添加基于 CLR 的存儲過程和函數(shù)支持是最自然不過的。
遠(yuǎn)在包括 Microsoft SQL Server 的任何其他服務(wù)器之前,DB2 就發(fā)布了對 CLR 存儲過程和函數(shù)的支持。這包括執(zhí)行 CLR 過程和函數(shù)的引擎支持,使用 DB2Context 對象的托管提供程序支持,以及 Visual Studio AD 工具。
標(biāo)準(zhǔn) C# 和 Visual Basic 項目列表中添加了一個新的 Visual Studio 項目模板,即 DB2 Class Assembly 項目。該項目模板幾乎與 C#/VB Class Assembly 項目一模一樣,但增加了對 IBM.Data.DB2 名稱空間和程序集的自動引用,以及預(yù)裝了用于存儲過程的類示例。您可以使用該項目模板來定義多個 CLR 存儲過程和函數(shù)。
一旦編譯了 CLR 項目,您就可以生成所需的 DB2 DDL 腳本,以定義一個或多個 CLR 存儲過程和函數(shù)。內(nèi)建的 DB2 CLR 過程向?qū)Э捎糜谧詣訖z測具有備選 CLR 過程的解決方案中的項目。然后,該 CLR 向?qū)⒃试S您定制生成的 DDL 和數(shù)據(jù)類型映射。一旦生成,DDL 腳本就會添加到您解決方案中的一個 DB2 數(shù)據(jù)項目中,以便稍后進(jìn)行部署。在該 DB2 數(shù)據(jù)庫項目的構(gòu)建過程中,該項目程序集還將添加到必須部署到目標(biāo) DB2 服務(wù)器上的程序集列表中。
您可以使用 DB2 數(shù)據(jù)庫項目上的 Assemblies 菜單動作,管理要部署到服務(wù)器上的 CLR 程序集列表。您可以添加、刪除以及選擇要部署的程序集的調(diào)試和發(fā)布版本。
一旦部署,CLR 過程的行為就與任何其他語言存儲過程一樣,并可用作應(yīng)用程序的一部分。
SQL 調(diào)試器
集成的跨語言 Visual Studio 調(diào)試器已經(jīng)擴(kuò)展為支持后端的 DB2 SQL 調(diào)試。現(xiàn)在,在執(zhí)行數(shù)據(jù)庫服務(wù)器例程時,您可以進(jìn)行內(nèi)嵌的 SQL 存儲過程調(diào)用,設(shè)置行斷點和變量值修改斷點,以及修改變量值。
初始的調(diào)試支持構(gòu)建到了 DB2 數(shù)據(jù)庫項目中,您可以在其中指定將在調(diào)試模式下執(zhí)行的啟動存儲過程。該支持限于 DB2 for Linux, UNIX, and Windows 服務(wù)器。
隨著時光飛逝,調(diào)試支持得到了更大的關(guān)注,其中平臺支持將擴(kuò)展為包含 z/OS 和 iSeries。此外,從 Server Explorer 直接啟動調(diào)試器,或?qū)⒅鳛槿嬲归_的應(yīng)用程序調(diào)試會話中的一部分也正在調(diào)查研究中。
在線幫助和用戶選項
DB2 AD Tools for Visual Studio 支持一組豐富的用戶定制選項。其中一些選項是直接從 IBM Tools 文件夾下標(biāo)準(zhǔn) Visual Studio Tools->Options 菜單中打開的。附加的選項可以直接使用 %APPDATA%IBMDB2vsnetuserOptions.xml 文件訪問。
當(dāng)您注冊 DB2 AD 工具和托管提供程序時,為工具和托管提供程序提供的在線幫助將自動注冊 Visual Studio 內(nèi)建幫助工具。您可以訪問動態(tài)和基于內(nèi)容的幫助。附加的在線幫助還可以通過 DB2 Information Center 找到,而 DB2 Information Center 則可以從 DB2 Tools 工具欄啟動。
