亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基礎(chǔ)水文數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出工具設(shè)計(jì)與實(shí)現(xiàn)分析

        2017-03-25 01:28:28周相麗賀旭東
        河南水利與南水北調(diào) 2017年2期
        關(guān)鍵詞:水文工具服務(wù)器

        □周相麗 □賀旭東

        (1河南省信陽(yáng)水文水資源勘測(cè)局;2河南省鄭州水文水資源勘測(cè)局)

        基礎(chǔ)水文數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出工具設(shè)計(jì)與實(shí)現(xiàn)分析

        □周相麗1□賀旭東2

        (1河南省信陽(yáng)水文水資源勘測(cè)局;2河南省鄭州水文水資源勘測(cè)局)

        在基礎(chǔ)水文數(shù)據(jù)庫(kù)維護(hù)過程中,經(jīng)常需要在不同的數(shù)據(jù)庫(kù)系統(tǒng)及其版本間導(dǎo)入導(dǎo)出數(shù)據(jù)。Visual Studio Integrated Development Environment提供了功能齊全的代碼編寫、編譯、調(diào)試等工具,支持C#語(yǔ)言,可以快速方便地創(chuàng)建和部署Web應(yīng)用程序、XML Web Services和傳統(tǒng)的客戶端應(yīng)用程序。文章設(shè)計(jì)了基礎(chǔ)水文數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出工具,并使用Visual C#及ADO.NET、Oracle Managed Data Access組件開發(fā)實(shí)現(xiàn)。

        基礎(chǔ)水文數(shù)據(jù)庫(kù);水文數(shù)據(jù);ADO.NET

        1 引言

        在實(shí)際水文整編和數(shù)據(jù)庫(kù)維護(hù)工作中經(jīng)常需要對(duì)數(shù)據(jù)庫(kù)中的水文原始、成果數(shù)據(jù)進(jìn)行導(dǎo)入導(dǎo)出?,F(xiàn)有數(shù)據(jù)庫(kù)管理系統(tǒng)大多提供數(shù)據(jù)導(dǎo)入導(dǎo)出功能,可將數(shù)據(jù)庫(kù)及其對(duì)象從一個(gè)服務(wù)器實(shí)例移動(dòng)或復(fù)制到另一個(gè)服務(wù)器實(shí)例。如Microsoft SQL Server提供SQL Server導(dǎo)入和導(dǎo)出向?qū)?DTSWizard.exe)及SQL ServerManagementStudio,Oracle提供 OracleSQL Developer。部分水文業(yè)務(wù)軟件亦提供不同數(shù)據(jù)庫(kù)之間不同站年、不同數(shù)據(jù)項(xiàng)目的數(shù)據(jù)遷移,如南方片水文資料整匯編軟件。不過有些應(yīng)用場(chǎng)景需要在不同的數(shù)據(jù)庫(kù)系統(tǒng)及其版本間遷移數(shù)據(jù),如SQL Server與Oracle之間及SQL Server 2000、2005、2008之間,這時(shí)需要更通用的程序?qū)崿F(xiàn)了。

        2 NET Framework、Oracle 數(shù)據(jù)提供程序簡(jiǎn)介

        .NET Framework數(shù)據(jù)提供程序(.NET Framework data provider)、Oracle托管數(shù)據(jù)訪問組件(Oracle Data Provider for.NET Managed Driver)提供.NET環(huán)境下對(duì)關(guān)系數(shù)據(jù)庫(kù)的訪問。NET Framework、Oracle數(shù)據(jù)提供程序包含4個(gè)核心對(duì)象,如表1所示。這些對(duì)象用于連接至數(shù)據(jù)源、執(zhí)行命令,提取數(shù)據(jù)集或更改數(shù)據(jù)源數(shù)據(jù)。

        表1 數(shù)據(jù)提供程序核心對(duì)象表

        3 導(dǎo)入導(dǎo)出工具的設(shè)計(jì)

        3.1 用戶界面

        工具是一個(gè)單文檔項(xiàng)目,程序界面簡(jiǎn)潔,整個(gè)界面由菜單欄、TabContrl和ProgressBar組成。菜單欄包含文件、選項(xiàng)、查看及幫助四個(gè)菜單項(xiàng)。TabContrl包含兩個(gè)TabPage頁(yè)面,分別為首頁(yè)和數(shù)據(jù)維護(hù)頁(yè)面。首頁(yè)頁(yè)面由數(shù)據(jù)庫(kù)設(shè)置、數(shù)據(jù)路徑設(shè)置、文件列表和日志框構(gòu)成。數(shù)據(jù)維護(hù)頁(yè)面由備份數(shù)據(jù)庫(kù)設(shè)置、可選測(cè)站列表框、年份列表框、成果表類型列表框和同步按鈕構(gòu)成。

        3.2 程序功能

        基礎(chǔ)水文數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出工具應(yīng)具有連接至數(shù)據(jù)庫(kù)功能,站年、數(shù)據(jù)項(xiàng)目類型選擇功能以及數(shù)據(jù)遷移功能等功能。

        連接至數(shù)據(jù)庫(kù)功能:可選擇源數(shù)據(jù)庫(kù)及目的數(shù)據(jù)庫(kù)類型,如可選擇SQL Server或Oracle數(shù)據(jù)庫(kù),輸入用戶名和口令后點(diǎn)擊連接按鈕連接至數(shù)據(jù)庫(kù)。

        站年、數(shù)據(jù)項(xiàng)目類型選擇功能:可選擇需遷移的測(cè)站列表、資料年份和數(shù)據(jù)項(xiàng)目類型。數(shù)據(jù)項(xiàng)目類型包括《基礎(chǔ)水文數(shù)據(jù)庫(kù)表結(jié)構(gòu)及標(biāo)識(shí)符標(biāo)準(zhǔn)》所列的成果數(shù)據(jù)庫(kù)表結(jié)構(gòu)、南方片水文資料整匯編軟件定義的原始數(shù)據(jù)庫(kù)表結(jié)構(gòu)以及用戶自定義擴(kuò)展的數(shù)據(jù)庫(kù)表結(jié)構(gòu)。主要數(shù)據(jù)庫(kù)表結(jié)構(gòu)如表2所示。

        數(shù)據(jù)遷移功能:按用戶所選源、目的數(shù)據(jù)庫(kù)及站年、數(shù)據(jù)項(xiàng)目類型將數(shù)據(jù)從源服務(wù)器實(shí)例移動(dòng)或復(fù)制到目的服務(wù)器實(shí)例。

        表2 主要數(shù)據(jù)庫(kù)表結(jié)構(gòu)表

        4 導(dǎo)入導(dǎo)出工具的實(shí)現(xiàn)

        4.1 數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出主要方法

        ①使用Sql(Oracle)Command、Sql(Oracle)DataAdapter和Sql (Oracle)Connection從源、目的數(shù)據(jù)庫(kù)中取得數(shù)據(jù)記錄,并分別填充至源、目的DataSet中。②比較源、目的DataSet中的記錄,并將較目的DataSet中新的記錄由源DataSet復(fù)制到目的DataSet。③使用目的DataSet的Sql(Oracle)DataAdapter.Update ()將修改過的目的DataSet記錄行返回目的數(shù)據(jù)庫(kù)。

        4.2 實(shí)現(xiàn)步驟

        4.2.1 連接至數(shù)據(jù)庫(kù)

        使用 SQL、Oracle數(shù)據(jù)訪問組件提供的 Sql(Oracle) Connection類打開源、目的數(shù)據(jù)庫(kù)連接。SqlConnection連接字符串為:string.Format("Data Source={0};Pooling=false;User Id= {1};Password={2};",ORASRVR, UserId, Password);Oracle Connection連接字符串為:

        string.Format("Data Source={0};Initial Catalog={1};User ID= {2};Password={3};",DataSource,InitialCatalog,UserID,Password)。

        4.2.2 加載數(shù)據(jù)庫(kù)記錄集至DataSet

        設(shè)置 Sql(Oracle)Parameter查詢參數(shù),調(diào)用 Sql(Oracle) DataAdapter的Fill方法將記錄填充至DataSet中。Sql(Oracle) DataAdapter的MissingSchemaAction屬性設(shè)置為MissingSchema Action.AddWithKey,以使Sql(Oracle)DataAdapter創(chuàng)建DataSet的架構(gòu)包括主鍵信息。

        4.2.3 復(fù)制DataSet記錄并更新目的數(shù)據(jù)庫(kù)

        DataSet為存放于內(nèi)存中的數(shù)據(jù)緩存,DataTable為內(nèi)存中的數(shù)據(jù)表。System.Data命名空間DataTable類提供Select()方法用以獲取DataRow對(duì)象數(shù)組。構(gòu)造適當(dāng)?shù)牟樵儽磉_(dá)式便可返回目的數(shù)據(jù)庫(kù)所需記錄,如查詢降雨量摘錄表過程主要語(yǔ)句可定義如下。

        string expression=string.Format("STCD=‘{0}’and BGTM=‘{1}’ and ENDTM=‘{2}’",STCD,BGTM,ENDTM);DataRow []datarow=

        dataset.Tables["TBL"].Select(expression)。待將查詢到的datarow復(fù)制至目的DataSet后,便可使用目的DataSet的Sql(Oracle) DataAdapter .Update()方法,將記錄更新至目的數(shù)據(jù)庫(kù)。為提高應(yīng)用程序的性能,Sql(Oracle)DataAdapter.UpdateBatchSize屬性可設(shè)置為0(表示服務(wù)器可處理的最大批大?。┗蛉我缓线m數(shù)據(jù)以減少批量更新服務(wù)器的次數(shù)。主要更新語(yǔ)句如下。

        Sql(Oracle)DataAdapter.UpdateBatchSize=UpdateNumber;Sql (Oracle)DataAdapter.Update(DataSet,TableName);DataSet.ccept Changes();Sql(Oracle)Transaction.Commit()。

        5 結(jié)語(yǔ)

        文章設(shè)計(jì)并實(shí)現(xiàn)了基礎(chǔ)水文數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出工具。軟件界面簡(jiǎn)潔、操作簡(jiǎn)便,包括站年、數(shù)據(jù)項(xiàng)目類型選擇以及數(shù)據(jù)遷移等功能。借助本軟件,可以跨越數(shù)據(jù)庫(kù)系統(tǒng)和版本,在SQL Server、Oracle之間或同一數(shù)據(jù)庫(kù)管理系統(tǒng)不同版本之間任意導(dǎo)入導(dǎo)出數(shù)據(jù)。系統(tǒng)實(shí)現(xiàn)主要應(yīng)用Sql(Oracle) Connection、Sql(Oracle)Command、Sql(Oracle)DataAdapter等對(duì)象,讀者在文章基礎(chǔ)上不難構(gòu)建自己的數(shù)據(jù)庫(kù)導(dǎo)入導(dǎo)出軟件。

        編輯:趙 鑫

        P337

        :B

        :1673-8853(2017)02-0038-02

        2016-11-16

        猜你喜歡
        水文工具服務(wù)器
        2022年《中國(guó)水文年報(bào)》發(fā)布
        波比的工具
        波比的工具
        水文
        水文水資源管理
        通信控制服務(wù)器(CCS)維護(hù)終端的設(shè)計(jì)與實(shí)現(xiàn)
        “巧用”工具
        讀者(2017年18期)2017-08-29 21:22:03
        水文
        得形忘意的服務(wù)器標(biāo)準(zhǔn)
        計(jì)算機(jī)網(wǎng)絡(luò)安全服務(wù)器入侵與防御
        亚洲精品一区二区三区av| 草莓视频一区二区精品| 亚洲人成7777影视在线观看| 手机看片1024精品国产| 亲少妇摸少妇和少妇啪啪| 中文字幕久久人妻av| av一区二区三区观看| 人妻少妇猛烈井进入中文字幕| 最新国产av网址大全| 亚洲国产精品嫩草影院久久av| 国产91会所女技师在线观看| 国产精品主播在线一区二区| 在线麻豆精东9制片厂av影现网| 日本大肚子孕妇交xxx| 成人毛片无码一区二区三区| 久久精品国产亚洲av四虎| 最近日本中文字幕免费完整| 亚洲91av| 2020亚洲国产| 日本最新在线一区二区| 97超碰精品成人国产| 亚洲精品国偷拍自产在线| 久久久久亚洲av成人无码 | 国产自拍视频在线观看免费| 亚洲av久久久噜噜噜噜 | 亚欧AV无码乱码在线观看性色| 免费无码中文字幕A级毛片| 最新永久无码AV网址亚洲| 日本中文字幕人妻精品| 亚洲中文字幕精品久久a| 日本大骚b视频在线| 中文字幕亚洲欧美日韩2019| 无码少妇一级AV便在线观看 | 亚洲伊人久久大香线蕉影院| 国产成人自产拍免费视频| 中文字幕久久国产精品| 成人麻豆视频免费观看| 亚洲av无码专区亚洲av伊甸园| 久久久久久久性潮| 精选麻豆国产AV| 国产一区二区三区在线爱咪咪|