色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

用.Net開發(fā)DB2數(shù)據(jù)庫(kù)應(yīng)用程序(1)

瀏覽:6日期:2023-11-10 13:17:03
簡(jiǎn)介在.NET應(yīng)用軟件開發(fā)人員看來,使用DB2與使用其它任何其它關(guān)系數(shù)據(jù)庫(kù)沒有區(qū)別。人們可以看到無數(shù)使用SQL Server以及甲骨文公司產(chǎn)品執(zhí)行數(shù)據(jù)庫(kù)任務(wù)的例子,但關(guān)于使用包括.NET在內(nèi)的微軟公司技術(shù)訪問DB2數(shù)據(jù)庫(kù)的文檔就遠(yuǎn)沒有那么多了。目前,開發(fā)人員可以使用不同的訪問技術(shù)通過編程的方式將.NET客戶端連接到DB2上,這些代碼從根本上來說是基本相同的,但仍然存在一些我們需要考慮的有趣的限制。DB2架構(gòu)慨覽DB2數(shù)據(jù)庫(kù)引擎的基本元素是數(shù)據(jù)庫(kù)對(duì)象、系統(tǒng)目錄、目錄和配置文件,所有的數(shù)據(jù)存取都通過SQL界面進(jìn)行。我們可以只將DB2 Univeral Database(UDB)作為數(shù)據(jù)庫(kù)服務(wù)器運(yùn)行,這不要求使用其它的產(chǎn)品,但對(duì)于遠(yuǎn)程的客戶端而言,我們還需要其它一些產(chǎn)品。用.Net開發(fā)DB2數(shù)據(jù)庫(kù)應(yīng)用程序(1)(圖pict01)連接到DB2的方式?jīng)Q定了我們能夠完成的任務(wù)。有三種技術(shù)可以從.NET連接到DB2:1、使用OleDb .NET Managed Provider。假如運(yùn)行的是DB2 V7或更低的版本以及COM對(duì)象是調(diào)用者時(shí),微軟和IBM二家公司都建議使用OleDb數(shù)據(jù)提供者訪問大多數(shù)DB2數(shù)據(jù)。在.NET Framework中,OleDb提供商是通過COM InterOp表現(xiàn)出來的,并使用可用于ADO開發(fā)的驅(qū)動(dòng)程序。2、使用ODBC .NET Managed Provider。這種方式提供了對(duì)本地ODBC驅(qū)動(dòng)程序的訪問,與OLEDb .NET Data Provider提供對(duì)本地OLEDb提供者訪問的方式相同。ODBC .NET Data Provider是.NET Framework的一個(gè)附加組件,它能夠與所有兼容的ODBC驅(qū)動(dòng)程序配合使用。3、使用IBM DB2 .NET Provider(β):這種方式提供了對(duì)將ADO.NET連接到DB2 V8.1的支持。DB2 .NET Data Provider是Visual Studio .NET Framework的一個(gè)內(nèi)插式附件,它能夠訪問在運(yùn)行在不同硬件和操作系統(tǒng)平臺(tái)上的DB•數(shù)據(jù)庫(kù)服務(wù)器。目前,它仍然處于β測(cè)試階段,但I(xiàn)BM公司很快會(huì)發(fā)布正式產(chǎn)品。DB2 .Net Data Provider能夠?qū)⑹褂肁DO.NET開發(fā)的應(yīng)用程序連接到下面的DB2數(shù)據(jù)庫(kù)服務(wù)器上: 1234下一頁(yè) •運(yùn)行在Windows、UNIX和Linux平臺(tái)上的DB2 Universal Database Version 8.1。•運(yùn)行在z/OS、OS/390 V6.1以及使用DB2 Connect V8.1組件的更高版本的操作系統(tǒng)上的DB2 Universal Database。不同的連接字符串顯示出不同情況下的語(yǔ)法差別:OleDb連接字符串:Provider=IBMDADB2.1;User ID=db2admin;Password=db2admin;Data Source=SAMPLEODBC連接字符串:DSN=DB2V8;UID=db2admin;PWD=db2adminBM Managed Provider連接字符串:Database=SAMPLE;User ID=db2admin;Password=db2admin;Server=IREK代碼級(jí)訪問的比較在開發(fā)DB2數(shù)據(jù)訪問代碼時(shí),大多數(shù)的操作在很大程度上與訪問其它數(shù)據(jù)庫(kù)相同。下面我們對(duì)連接技術(shù)的一些代碼進(jìn)行比較:在下面的每個(gè)代碼片斷中,我們將展示一些數(shù)據(jù)庫(kù)訪問和數(shù)據(jù)治理的技巧,請(qǐng)讀者注重每種技術(shù)的哪些步驟相同。我們首先創(chuàng)建連接對(duì)象,再創(chuàng)建一個(gè)命令對(duì)象。在這個(gè)簡(jiǎn)單的例子中,我們只訪問這一特定數(shù)據(jù)庫(kù)表中指定行、列中的一個(gè)標(biāo)量值。最后,我們執(zhí)行該命令的ExecuteScalar()方法,返回該整數(shù)。使用Ole Db技術(shù)private OleDbConnection cn = new OleDbConnection(connectionString); OleDbCommand cmd = new OleDbCommand("SELECT COUNT(*) FROM STAFF", cn); int rc = Convert.ToInt32(cmd.ExecuteScalar());使用ODBCprivate OdbcConnection cn = new OdbcConnection(connectionString);OdbcCommand cmd = new OdbcCommand("SELECT COUNT(*) FROM STAFF", cn);int rc = Convert.ToInt32(cmd.ExecuteScalar());使用IBM的Managed Providerprivate DB2Connection cn = new DB2Connection(connectionString); 上一頁(yè)1234下一頁(yè) DB2Command cmd = new DB2Command("SELECT COUNT(*) FROM STAFF", cn);int rc = Convert.ToInt32(cmd.ExecuteScalar());功能的比較根據(jù)選擇的訪問技術(shù)和使用的數(shù)據(jù)庫(kù)版本,我們可以使用不同的功能。另外,根據(jù)需要完成的工作,我們還需要選擇連接策略。為了使讀者能夠更好的選擇連接技術(shù),我整理出了一個(gè)能夠在決策中使用的路線圖。在路線圖中,我找出了一些對(duì)于大多數(shù)以數(shù)據(jù)庫(kù)為中心的軟件開發(fā)項(xiàng)目中通用的功能。在下面的圖表中,我對(duì)自己的心得進(jìn)行了整理。我根據(jù)是否答應(yīng)完成特定的數(shù)據(jù)庫(kù)任務(wù)對(duì)三種訪問技術(shù)中的每一種都進(jìn)行了評(píng)估,評(píng)估的數(shù)據(jù)庫(kù)任務(wù)有:•Pass-thru SQL━━這一提供者是否支持通過動(dòng)態(tài)開發(fā)的SQL語(yǔ)句形成的傳遞?•簡(jiǎn)單的存儲(chǔ)過程━━這一提供者支持包括返回結(jié)果在內(nèi)的調(diào)用基本的存儲(chǔ)過程嗎?•In、Out、InOut參數(shù)━━這一提供者支持調(diào)用存儲(chǔ)過程和利用參數(shù)傳遞變量數(shù)據(jù)嗎?•日期和貨幣━━這一提供者支持由特定廠商提供、可能造成問題的數(shù)據(jù)類型嗎?•LOBs━━這一提供者支持大對(duì)象數(shù)據(jù)類型的處理嗎?(圖pict02)根據(jù)使用的連接技術(shù),我們能夠完成不同類型的任務(wù),因?yàn)槊糠N提供者都有自己可以完成的工作。有一些問題是我們值得注重的。例如,ODBC不支持DB2的存儲(chǔ)過程。因此,假如開發(fā)的應(yīng)用軟件非常依靠于存儲(chǔ)過程,我們?cè)谶x擇訪問技術(shù)時(shí)就不能考慮ODBC,而應(yīng)當(dāng)考慮OleDb或Managed Provider。OleDb不支持LOB數(shù)據(jù)類型,假如要存取LOB類型的數(shù)據(jù)(例如JPEG文件),我們可以使用ODBC或Managed Provider。目前,Managed Provider不能在DB2 V7或以前版本上運(yùn)行,除非在應(yīng)用程序和基于主機(jī)的DB2系統(tǒng)之間運(yùn)行著DB2 Connect V8。 上一頁(yè)1234下一頁(yè) 有趣的是,在使用存儲(chǔ)過程的參數(shù)時(shí),DB2 V7和OleDb有一個(gè)非常聞名的bug。我們能夠從存儲(chǔ)過程中返回?cái)?shù)據(jù),但在OleDb+DB2 V7平臺(tái)上,我們不能在應(yīng)用程序與存儲(chǔ)過程之間傳遞參數(shù)。性能比較為了衡量提供者的性能和向讀者提供指導(dǎo),我們將定義一個(gè)有效的測(cè)試腳本,并對(duì)各種提供者的關(guān)健性能進(jìn)行測(cè)試。為了比較各種連接技術(shù)的性能,我們開發(fā)了一些簡(jiǎn)單的Web網(wǎng)頁(yè),一個(gè)網(wǎng)頁(yè)面向執(zhí)行完全相同功能的測(cè)試,這將使我們把握分析不同連接技術(shù)情況下輸出的控制數(shù)據(jù)。(圖pict03)假如嚴(yán)格地從性能的角度來看,我們發(fā)現(xiàn),Managed Provider在訪問DB2數(shù)據(jù)庫(kù)時(shí)的性能最高。在這一簡(jiǎn)單的測(cè)試中,有二個(gè)重要的數(shù)字值得關(guān)注:每秒鐘的請(qǐng)求(RPS)能夠使我們感受到訪問的規(guī)模,OleDb和ODBC在這方面的表現(xiàn)基本相似,但Managed Provider的表現(xiàn)要好一些(大約高10%左右);收到最后一字節(jié)的時(shí)間(TTLB)是從終端用戶的角度看到的響應(yīng)時(shí)間,在這一方面,Managed Provider的性能再次比OleDb和ODBC高出10%左右。最值得注重的是,盡管提供的功能不同,但OleDb和ODBC在有負(fù)荷的情況下的性能基本相同。IBM公司的Managed Provider的性能最好,而且提供了在訪問DB2 V8時(shí)最可靠的功能。但是,假如沒有DB2 Connect作中間體,它不支持DB2 V7以及更低的版本。結(jié)論對(duì)于應(yīng)用軟件開發(fā)人員而言,使用DB2作后端與使用其它通過ADO或ADO.NET訪問的關(guān)系數(shù)據(jù)庫(kù)一樣簡(jiǎn)單。ADO.NET為我們完成了所有抽象工作。在選擇DB2還是其它數(shù)據(jù)庫(kù)時(shí),盡管存在架構(gòu)方面的考慮,但作為開發(fā)人員,我們的工作應(yīng)當(dāng)是可猜測(cè)和可治理的。 上一頁(yè)1234
標(biāo)簽: DB2 數(shù)據(jù)庫(kù)
主站蜘蛛池模板: 国产一级毛片免 | 亚洲国产精品综合久久一线 | 亚洲热播| 久久不射网 | 免费看黄色三级毛片 | 国产精品国产亚洲精品看不卡 | 欧美一级特黄特色大片免费 | 男人透女人超爽视频免费 | 日本三级11k影院在线 | 一级毛片免费完整视频 | 日本天堂在线视频 | 九九线精品视频 | 欧美三级网站在线观看 | 一级a毛片免费观看久久精品 | 精品久久免费观看 | 女人张开双腿让男人桶爽免 | 欧美日本高清视频在线观看 | 99午夜高清在线视频在观看 | 伊人网五月天 | 欧美日韩国产亚洲综合不卡 | 91久久精品国产91久久性色tv | 久久久一区二区三区不卡 | 成年人网站在线 | 另类视频在线观看 | 欧美成人高清 | 97久久曰曰久久久 | 免费人成综合在线视频 | 精品久久久久久综合网 | 国产福利在线91 | 国产或人精品日本亚洲77美色 | 美女张开腿让男人桶爽动漫视频 | a一级爱做片免费 | 亚洲女精品一区二区三区 | 永久网站色视频在线观看免费 | 久久亚洲成a人片 | 欧美一级片手机在线观看 | 亚洲精品人成在线观看 | 成人三级做爰在线视频 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看中 | 亚洲深夜福利视频 | 岛国搬运工最新网地址 |