實時水情數(shù)據(jù)轉(zhuǎn)儲手冊_第1頁
實時水情數(shù)據(jù)轉(zhuǎn)儲手冊_第2頁
實時水情數(shù)據(jù)轉(zhuǎn)儲手冊_第3頁
實時水情數(shù)據(jù)轉(zhuǎn)儲手冊_第4頁
實時水情數(shù)據(jù)轉(zhuǎn)儲手冊_第5頁
已閱讀5頁,還剩34頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、實時水情數(shù)據(jù)轉(zhuǎn)儲使用手冊水利部水文局(水利信息中心)2005年12月 TOC o 1-5 h z HYPERLINK l bookmark6 o Current Document 第1章概述1第2章系統(tǒng)環(huán)境2第3章系統(tǒng)功能3 HYPERLINK l bookmark18 o Current Document 第4章系統(tǒng)的數(shù)據(jù)流程和程序流程4 HYPERLINK l bookmark21 o Current Document 4.1數(shù)據(jù)流程4 HYPERLINK l bookmark24 o Current Document 4.2程序流程圖5 HYPERLINK l bookmark27 o

2、Current Document 第5章系統(tǒng)的模塊6 HYPERLINK l bookmark30 o Current Document 5.1數(shù)據(jù)庫信息配置6 HYPERLINK l bookmark36 o Current Document SELECT 模塊7 HYPERLINK l bookmark40 o Current Document INSERT 模塊7 HYPERLINK l bookmark44 o Current Document 5.4特殊轉(zhuǎn)儲規(guī)則模塊8 HYPERLINK l bookmark53 o Current Document 5.5日志文件8 HYPERLI

3、NK l bookmark59 o Current Document 第6章軟件的使用9 HYPERLINK l bookmark56 o Current Document 6.1軟件的安裝96.2配置界面11 HYPERLINK l bookmark62 o Current Document 6.3轉(zhuǎn)儲界面13 HYPERLINK l bookmark65 o Current Document 第7章參數(shù)配置15 HYPERLINK l bookmark68 o Current Document 7.1配置文件15 HYPERLINK l bookmark73 o Current Docum

4、ent 7.2表關(guān)系結(jié)構(gòu)16 HYPERLINK l bookmark79 o Current Document 第8章程序修改19 HYPERLINK l bookmark82 o Current Document 8.1配置文件和表結(jié)構(gòu)的修改19 HYPERLINK l bookmark115 o Current Document 8.2數(shù)據(jù)庫函數(shù)修改23 HYPERLINK l bookmark133 o Current Document 8.3轉(zhuǎn)換函數(shù)的修改25 HYPERLINK l bookmark136 o Current Document 第9章技術(shù)支持26 HYPERLINK

5、 l bookmark139 o Current Document 附錄:轉(zhuǎn)換函數(shù)說明清單27第1章概述水情數(shù)據(jù)轉(zhuǎn)儲系統(tǒng)是配合剛剛頒布的實時雨水情數(shù)據(jù)庫表結(jié) 構(gòu)與標(biāo)識符標(biāo)準(zhǔn)(SL323-2005),為了解決舊編碼數(shù)據(jù)庫中歷史數(shù) 據(jù)的轉(zhuǎn)儲問題而研制的。系統(tǒng)支持“世行版”防洪水情數(shù)據(jù)庫(HYDB)和國家防 汛指揮系統(tǒng)工程實時水雨情庫表結(jié)構(gòu)(2000版)兩種舊編碼數(shù)據(jù)庫 的數(shù)據(jù)轉(zhuǎn)入到新編碼數(shù)據(jù)庫。針對有些地方在以上兩種數(shù)據(jù)庫標(biāo)準(zhǔn) 上還有新建表的情況,本系統(tǒng)還提供了原程序以及非常方便的系統(tǒng) 修改和擴(kuò)展功能。需要說明的是,memory文件夾中放置的是編譯過的數(shù)據(jù)轉(zhuǎn)儲軟 件安裝程序;date memory

6、文件夾中放置的是數(shù)據(jù)轉(zhuǎn)儲軟件原程序。實時水情數(shù)據(jù)轉(zhuǎn)儲軟件的開發(fā)和運行環(huán)境的主要技術(shù)指標(biāo)如 下:(1)微機(jī)工作站或微機(jī)服務(wù)器一臺,主頻大于等于1GHz,內(nèi)存大 于等于256M字節(jié)(推薦1G字節(jié)),硬盤大于等于20G字節(jié),連接局 域網(wǎng)的網(wǎng)卡。(2)根據(jù)后臺數(shù)據(jù)庫的類型分別安裝配套的數(shù)據(jù)庫連接客戶端軟 件,并做好指定庫的訪問設(shè)置。(3)開發(fā)和運行的操作系統(tǒng)有Windows ME/XP/2000/NTo(4)開發(fā)工具為VB 6.0語言。實時水情數(shù)據(jù)轉(zhuǎn)儲軟件分為五個部分:數(shù)據(jù)庫信息配置,數(shù)據(jù) 處理進(jìn)行轉(zhuǎn)儲,覆蓋式寫入,時間分段轉(zhuǎn)儲,日志文件記錄。(1)數(shù)據(jù)庫配置信息在主界面上給用戶提供了目的庫和源數(shù)據(jù)庫

7、的數(shù)據(jù)庫信息,用 戶可以根據(jù)從配置文件中取得的數(shù)據(jù)庫信息連接數(shù)據(jù)庫,配置界面 會自動把您所輸入新的數(shù)據(jù)庫信息錄入到配置文件中去。(2)數(shù)據(jù)處理進(jìn)行轉(zhuǎn)儲它在整個功能中起到主要作用,其它功能都是與它相配合,在 轉(zhuǎn)儲界面選擇表,支持多表和單表錄入,程序自動形成SQL語旬, 經(jīng)過加工處理最后錄入到目的庫中去。(3)覆蓋式寫入此功能是對于有主鍵重復(fù)錯誤的庫表,如果選上此選項,對于 主鍵重復(fù)的記錄將會直接覆蓋寫。(4)時間分段轉(zhuǎn)儲此功能針對一些數(shù)據(jù)量比較大,同時又含有時間字段為主索引 的數(shù)據(jù)庫表,可以根據(jù)時間段來進(jìn)行錄入,這樣可以減輕系統(tǒng)處理 的壓力。(5)日志文件記錄它的作用是記錄了轉(zhuǎn)儲中出錯的入庫語旬

8、,每個表都有自己獨 立的錯誤日志文件。第4章系統(tǒng)的數(shù)據(jù)流程和程序流程4.1數(shù)據(jù)流程通過用戶所輸入的數(shù)據(jù)庫信息,把它保存在配置文件中, 連接數(shù)據(jù)庫,根據(jù)用戶所選的庫,從配置文件獲得該庫的連接 信息,然后整理出SQL語句進(jìn)行查詢,查找出所要轉(zhuǎn)儲的字段, 根據(jù)配置文件中表的關(guān)系中定義的特殊字段轉(zhuǎn)換規(guī)則來處理數(shù) 據(jù)并插入到目的庫中去,如有錯誤同時記錄日志。數(shù)據(jù)流程圖:/Z:首先數(shù)據(jù)庫配參數(shù)傳遞1.1配置文件參數(shù)值傳遞1.2數(shù)據(jù)庫數(shù)據(jù)表信息1.3配置文件系統(tǒng)的配置文件連接數(shù)據(jù)庫源庫的配置文件配置信息顯示列表用戶進(jìn)行各種手工選擇條件信息2.1配置文件轉(zhuǎn)儲字段2.2配置文件目的庫字段信息2.5 SQL目的表

9、關(guān)系的配置文件目的的配置文件INSERT轉(zhuǎn)碼信息轉(zhuǎn)儲字段,2.3配置文件庫表關(guān)系源庫總信息2.4 SQL查選轉(zhuǎn)儲記錄2.5配置文件SELECT轉(zhuǎn)碼的配置文件源庫的配置文件SQI語句存儲模式 判斷模式信息 3.1模式選擇選擇模式 3.2數(shù)據(jù)轉(zhuǎn)儲模式判斷根據(jù)模進(jìn)行 數(shù)據(jù)轉(zhuǎn)儲轉(zhuǎn)儲數(shù)據(jù)日志信息4.1日志文件數(shù)據(jù)庫記錄日志文件4.2程序流程圖進(jìn)行選擇庫和配置系統(tǒng)的配置文件目的配置文件用戶指定轉(zhuǎn)儲條件把它保存在內(nèi)存中讀取目的配置文件順序讀取每個目的表表關(guān)系 的配置文件j時間條件,有無事務(wù),是否覆蓋讀取該目的表的關(guān)系對應(yīng)配置文件找到所要轉(zhuǎn)儲的源豐白僻自*根據(jù)在目的表中源表的表名讀源表的配置信息是否選擇了,時

10、間范圍“是否轉(zhuǎn)儲條件含有日期條件替換時間信息整理數(shù)據(jù)源查詢的SELECT 語句執(zhí)行SELECT語句,按源字段描述荻取數(shù)據(jù)*順序讀取每行按每個字段的規(guī)則轉(zhuǎn)換處理數(shù)據(jù)數(shù)據(jù)入庫并記錄日志是否處理完成N結(jié)束y第5章系統(tǒng)的模塊5.1數(shù)據(jù)庫信息配置此模塊的主要作用是對數(shù)據(jù)庫信息進(jìn)行配置,把用戶輸入的信 息保存在system.in 1文件中去,這樣用戶修改數(shù)據(jù)信息可以從配置文 件中修改,也可以從界面上直接編輯。不同數(shù)據(jù)庫連接的處理方式:A:世行數(shù)據(jù)庫打開世行數(shù)據(jù)庫的函數(shù)為DataBaseConfig()數(shù)據(jù)庫通過Address, DBase, UName, PWord這四個參數(shù)傳遞, 配置界面上的的數(shù)據(jù)庫參

11、數(shù)信息,傳遞給這四個參數(shù),然后打開數(shù) 據(jù)庫連接。B:大項目數(shù)據(jù)庫打開大項目數(shù)據(jù)庫的函數(shù)為DxmDataBaseConfig ()數(shù)據(jù)庫通過Address, DBase, UName, PWord這四個參數(shù)傳遞, 配置界面上的的數(shù)據(jù)庫參數(shù)信息,傳遞給這四個參數(shù),然后打開數(shù) 據(jù)庫連接。C:新庫數(shù)據(jù)庫打開新庫數(shù)據(jù)庫的函數(shù)為DxmXkDataBase()數(shù)據(jù)庫通過Address, DBase, UName, PWord這四個參數(shù)傳遞, 讀取配置文件System.ini中數(shù)據(jù)庫信息,傳遞給這四個參數(shù),然后打 開數(shù)據(jù)庫連接。SELECT 模塊根據(jù)在程序中設(shè)計的結(jié)構(gòu)體,源庫的表名DxmFrom),源庫 的表

12、字段(DxmFields),源庫表間的關(guān)系(DxmWhere),從 ReadGetVdueO函數(shù)中獲得用戶所選的表結(jié)構(gòu)體的配置屬性,然 后根據(jù)這些結(jié)構(gòu)的屬性添加到SELECT語旬中去,這樣就能查出所 要轉(zhuǎn)儲的源庫中表的所有字段。提供三種轉(zhuǎn)儲方式,第一種是在用戶未提供轉(zhuǎn)儲時間段的情況 下,系統(tǒng)自動對時間字段、旬月時間字段按半年拆分成轉(zhuǎn)儲數(shù)據(jù)塊 序列,然后自動分批轉(zhuǎn)儲,可以解決一次性數(shù)據(jù)量過大導(dǎo)致系統(tǒng)負(fù) 載過重的問題;第二種是根據(jù)用戶提供的轉(zhuǎn)儲時間段執(zhí)行轉(zhuǎn)儲;第 三種則是直接轉(zhuǎn)儲數(shù)據(jù)。INSERT 模塊INSERT數(shù)據(jù)根據(jù)SELECT所查詢到的信息,在通過字段轉(zhuǎn)儲 規(guī)則處理ShChangeValu

13、e()函數(shù),把所查找到數(shù)據(jù)輸入到目的庫中 去。在形成INSERT過程中包含了覆蓋式寫入模塊,如果用戶選擇 “覆蓋式寫入”,程序就會通過目的表的配置文件找到目的表的主索 引,根據(jù)有主鍵的字段來查詢在目的表中查找,如果查找到對應(yīng)的 數(shù)據(jù)則先執(zhí)行刪除后插入新數(shù)據(jù);未選擇“覆蓋式寫入”的情況下, 會產(chǎn)生主鍵重復(fù)的錯誤記錄到日志中,但不影響其他數(shù)據(jù)的轉(zhuǎn)儲。5.4特殊轉(zhuǎn)儲規(guī)則模塊ShChangevalue ()公用模塊執(zhí)行具體的轉(zhuǎn)換規(guī)則。轉(zhuǎn)換規(guī)則配 置在結(jié)構(gòu)體中(參見7.2)。ShChangevalue()函 數(shù)說明:這個函數(shù)包括了兩個參數(shù)FCVdue,F(xiàn)CVRelation。FCValue是從源數(shù)據(jù)庫表

14、中取出的數(shù)據(jù),F(xiàn)CVRelation表示轉(zhuǎn)換 的函數(shù)關(guān)系,根據(jù)FCVRelation來判斷出函數(shù)關(guān)系,在對數(shù)據(jù)進(jìn)行 處理。5.5日志文件日志文件記錄了在轉(zhuǎn)儲過程中各種錯誤的數(shù)據(jù),用戶可以在 剛轉(zhuǎn)儲完后,看看日志中是否有錯誤,根據(jù)日志文件的錯誤,在進(jìn) 行調(diào)整。錯誤日志在log目錄下,每個目的表一個日志文件,以表 名命名。6.1軟件的安裝第6章軟件的使用在安裝光盤的memory文件夾里:雙擊SETUP.EXE安裝圖標(biāo),進(jìn)入安裝界面。然后點擊OK按鈕進(jìn)行下一步的安裝。點擊(Change Directory)然后修改安裝目錄點擊按鈕就直接在默認(rèn)的(C:ProgramFilesDataMemory.)路

15、徑安裝.這里可以根據(jù)需要修改名字,這里的數(shù)據(jù)轉(zhuǎn)儲名字作為安裝完 成后在“windows添加刪除程序”中的顯示名字。如果默認(rèn)不修改 直接點擊(Continue),之后程序自動安裝完畢。(1)數(shù)據(jù)庫客戶端設(shè)置安裝不同的數(shù)據(jù)庫的客戶端(SYBASE數(shù)據(jù)庫就安裝SYBASE 數(shù)據(jù)庫的客戶端,SQL SEVER數(shù)據(jù)庫就安裝SQL SEVER數(shù)據(jù)庫的 客戶端,O RACLE數(shù)據(jù)庫就安裝ORACLE數(shù)據(jù)庫的客戶端)。然后 配置客戶端,在客戶端上建立數(shù)據(jù)源,建立數(shù)據(jù)源才能進(jìn)行連接。SYBASE客戶端設(shè)置AttributesServer Server Entry VersionrIServer Name10.1

16、.1.11Server ServiceSQL ServerServer StatusA UnknownServer AddressTCP- 10.1.1.11.3699dsedit - DSEDIT1 - InterfacesDriver邕回區(qū).Server Object點擊Server Object下拉菜單點擊ADD選項進(jìn)行添加。For Helpj press FlSEVER NAME為SQ數(shù)據(jù)庫就算配置完了。(2)界面第一次使用,需要用戶去進(jìn)行配置,配置好數(shù)據(jù)庫信息后,程 序會自動把數(shù)據(jù)庫信息錄入到配置文件中去,第二次用戶就可不必 配置了,程序會自動從配置文件去調(diào)用上次的配置信息。注意:每

17、 次用戶必須先選擇源數(shù)據(jù)庫的標(biāo)準(zhǔn)。(注:數(shù)據(jù)庫服務(wù)器名字就是數(shù)據(jù)庫客戶端設(shè)置中的SEVER NAME)根據(jù)上圖可以讓用戶選擇源庫,然后源庫的信息會自動顯示在 文本框上,如果數(shù)據(jù)庫的信息變了,用戶也可以在上面直接修改, 原庫和目的庫都可以支持,用戶輸入完新的數(shù)據(jù)信息后,直接點擊 確定就可以了,系統(tǒng)會把新的信息存儲到配置文件system.ini里。6.3轉(zhuǎn)儲界面(單項表轉(zhuǎn)儲)(多項表轉(zhuǎn)儲)這個界面支持多選,如果不需要全選,也可以自動手選,刪除 按鈕作用是刪除用戶所選中的表的的記錄。顯示處理記錄第一個文 本框作用是整體記錄數(shù),第二個作用是當(dāng)前處理記錄數(shù),時間段的 輸入是根據(jù)用戶手工錄入時間來轉(zhuǎn)儲。點

18、擊確定后,程序自動開始 進(jìn)行轉(zhuǎn)儲,如果數(shù)據(jù)量大的話,需要用戶去等待,它要提取數(shù)據(jù)。(支 持多表刪除和多表同時進(jìn)行轉(zhuǎn)儲)用戶手動時間段是在兩個起始時間和結(jié)束時間,然后點擊確定按鈕程序自動執(zhí)行,根據(jù)用戶所輸入的時間段,查找數(shù)據(jù)庫記錄。第7章參數(shù)配置根據(jù)各地方數(shù)據(jù)庫表結(jié)構(gòu)的差異不同,就要求我們程序必須有 具有靈活性,廣泛的應(yīng)用性。因此我們采用配合配置文件上的數(shù)據(jù) 來編寫程序,進(jìn)行管理。只要把配置文件配置出來,程序就能夠取 配置文件表中的相關(guān)信息,屬性。7.1配置文件XKDB.INI(新庫),SYSTEM.INI (數(shù)據(jù)庫配置信息)例:(1)XKDB.INI (新庫);字段=中文名字,類型,寬度,主鍵

19、,;考證資料類;測站基本屬性表ST_STBPRP_BSTCD=測站編碼,c,8,1STNM二測站名稱,c,30RVNM二河流名稱,c,30HNNM二水系名稱,c,30BSNM二流域名稱,c,30LGTD=經(jīng)度,c,7LTTD=緯度,c,6(2)SYSTEM.INI(數(shù)據(jù)庫配置信息)RWDBIPADDRESS=127.0.0.1DATABASENAME=DBNameUSERNAME=userPASSWORD=*數(shù)據(jù)庫信息的配置文件。7.2表關(guān)系結(jié)構(gòu)用結(jié)構(gòu)體形式把它配置在了 VB中(在轉(zhuǎn)儲界面的表單中),因 為它的屬性方法在轉(zhuǎn)儲中起到了重要的作用,根據(jù)我們所配置這些 屬性來形成SELECT,INS

20、ERT語句,在這理我們也配置了舊庫表中的1 對多的表關(guān)系,和特殊轉(zhuǎn)換規(guī)則例:With NewTableEmp.TableName = ST_STBPRP_B .TableDes = ST_STBPRP_B (測站基本屬性表).Fields=STCD,STNM,RVNM,HNNM,BSNM,LGTD,LTTD,STLC,ADDVCD,MDBZ,MD PR,DTMNM,DTMEL,STTP,DFRTMS,FRITM,FRGRD,BGFRYM,EDFRYM,ADMAUTH,STBK,DR NA,PHCD世行庫.ShFields=SB_STHD.STCD,STNM,RINM,HNET,BASIN,ES

21、LO,NRLA,STLC,ADD VCD,null,MDPR,null,BASE,STTP,null,FCOPT,null,BNYM,null,null,null,SB_ RCFT.BSDRA,null”.ShFrom = SB_STHD,SB_RCFT.ShChangeValue 二,,DtToChar6,const(未口),.ShWhere = SB_STHD.STCD *=SB_RCFT.STCD.ShDTime = .ShCTime= 大項目庫.DxmFields=ST_STINFO_B.STCDT,STNM,RVNM,SUBNM,BNNM,ELSO,NTLA,S TADDR,ADCD

22、,BASE,MDPR,NULL,NULL,STTP,NDR,ITEM,1,F(xiàn)NYM,ENDYM,NULL,NUL L,BSDRA,NULL.DxmFrom = ST_STINFO_B,ST_RFCT_B.DxmChangeValue = ,,const(未口),.DxmWhere = ST_STINFO_B.STCDT *= ST_RFCT_B.STCDT.DxmDTime = .DxmCTime=End WithNewDBCollection.Add NewTableEmp, ST_STBPRP_B_keyTableName:新庫的表名(上面黑體粗字字為表名字ST_STBPRP_B)可以在這

23、里進(jìn)行修改TableDes:新庫的名字加(中文名字)Fields:新庫表的字段世行庫ShFields:世行庫的字段ShFrom:世行庫所要轉(zhuǎn)儲的表集合ShChangeValue:轉(zhuǎn)儲的規(guī)則,藍(lán)色代表配置函數(shù)如果那個字段有需 要可以如上進(jìn)行配置(轉(zhuǎn)換函數(shù)說明清單)ShWhere:世行庫表間關(guān)系(如果轉(zhuǎn)儲表存在一對多的情況,那么所 要轉(zhuǎn)儲的多表之間存在一定關(guān)系,我們這種關(guān)系就配置在這)ShDTime:世行庫表的時間字段(填寫在表中相應(yīng)的字段名字*ShCTime:用來表示旬月時間(填寫在表中相應(yīng)的字段名字)大項目庫DxmFields:大項目庫的字段DxmFrom:大項目庫所要轉(zhuǎn)儲的表集合DxmCha

24、ngeValue:轉(zhuǎn)儲的規(guī)則DxmWhere:大項目庫表間關(guān)系(如果轉(zhuǎn)儲表存在一對多的情況,那 么所要轉(zhuǎn)儲的多表之間存在一定關(guān)系,我們這種關(guān)系就配置在這)DxmDTime:大項目庫表的時間字段(填寫在表中相應(yīng)的字段名書DxmCtime:用來表示旬月字符時間(填寫在表中相應(yīng)的字段名字)第8章程序修改根據(jù)地方上與中央的差異,庫表結(jié)構(gòu)的不同,數(shù)據(jù)庫的不同。需要對數(shù)據(jù)轉(zhuǎn)儲程序進(jìn)行修改,以便地方能夠按自己的需求進(jìn)行轉(zhuǎn) 儲。8.1配置文件和表結(jié)構(gòu)的修改(1)如果地方與中央庫表結(jié)構(gòu)存在差異,那么就需要地方重新 對數(shù)據(jù)庫表進(jìn)行配置。首先要根據(jù)新庫的表結(jié)構(gòu)字段在XkDB.ini中去進(jìn)行配置。例子:測站基本屬性表

25、ST_STBPRP_BSTCD=測站編碼,c,8,1STNM二測站名稱,c,30RVNM二河流名稱,c,30ST_STBPRP_B是表名字,在這里作為節(jié)名字STCD是字段名字字段=中文名字,類型,寬度,主鍵,注意一點:字段索引配置在第4位,如果有字段索引則寫上字段索引,如果沒有就不要寫第4位,配置到第3位即可。等號后每個位置都要按照給出規(guī)范去配置,否則程序取新庫字 段的屬性時候會出錯。(2)配置好新庫的表的字段屬性后,就開始在VB中配置表with 結(jié)構(gòu)了,它的配置比較重要,因為這個結(jié)構(gòu)包含了多種關(guān)系,配置 起來也相對要復(fù)雜,需要我們在配置時候要細(xì)心,嚴(yán)謹(jǐn),仔細(xì)的對 照表間的關(guān)系,以免出現(xiàn)錯誤。

26、三個字段:Fields (新庫字段),DxmFields (大項目字段), ShFields (世行庫字段),字段輸入要根據(jù)表的對應(yīng)關(guān)系,對號入座。例子:大項目庫轉(zhuǎn)儲到新庫A表(新庫),B表,C表(B,C都為大項目庫表)1對1進(jìn)行配置:A表,a,b,c,d,e字段B 表,a1,b1,d1,e1 字段A表中的字段和B表中的字段要對應(yīng)。各個表字段配置:Fields=a,b,c,d,eDxmField=a1,b1,null,d1,e1如果出現(xiàn)了A表有字段,而B表沒有字段來對應(yīng),在沒有特殊 轉(zhuǎn)儲要求下,用NULL來進(jìn)行對應(yīng)。(可以根據(jù)地方上的具體情況來 定)。表名字配置:DxmFrom=B直接進(jìn)行配置

27、表名字。轉(zhuǎn)換關(guān)系的配置:如果存在從B表到A表需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換存儲,那么就要求 配置它的對應(yīng)關(guān)系,比如d1字段到d字段需要轉(zhuǎn)換,假設(shè)它的轉(zhuǎn)換 函數(shù)是DtToChar6。則在結(jié)構(gòu)體中如下進(jìn)行配置:DxmChangeValue= , DtToChar6,DtToChar6位置要對應(yīng)d字段的位置。沒有關(guān)系的字段位置只是用逗號格開。表間關(guān)系配置:表1對1配置不存在表間關(guān)系,表間關(guān)系是指對1對多關(guān)系,B 表和C表之間的關(guān)系,還有一種特殊情況就是1對1表轉(zhuǎn)儲時候, 在B表中,可能某些字段在轉(zhuǎn)儲中還需要加條件,例如)1字段必須 為空時候(b1 is null)。如果什么情況也沒有,這里就為空。DxmWher

28、e=b1 is null “表時間字段的配置:B表字段中存在時間字段b1,并且這個時間字段還是索引的情況 下,把它配置在這。DxmDTime=b1”旬月字符時間的配置:B表字段中如果存在字段是旬月字符時間字段,那么在這里配 置。DxmCtime= “1對多表進(jìn)行配置:A表,a,b,c,d,e字段B 表,a1,b1,c1,d1 字段C 表,a2,b2,e2 字段A表中的字段和B表,C表中的字段要對應(yīng)各個表字段配置:在1對多表配置中,源庫表字段的配置項要加上(表名字.表字 段名字),在對應(yīng)好后,在首字段加上表字段名字就可以。Fields=a,b,c,d,eDxmField二B.a1,b1,c1,d

29、1,C.e2如果出現(xiàn)了 A表有字段,而B表沒有字段來對應(yīng),用NULL來進(jìn) 行對應(yīng)。(這要根據(jù)地方上的具體情況來定)表名字配置:DxmFrom=B表,C表 直接進(jìn)行配置表名字。轉(zhuǎn)換關(guān)系的配置:如果存在從B表到A表需要對數(shù)據(jù)進(jìn)行轉(zhuǎn)換存儲,那么就要求 配置它的對應(yīng)關(guān)系,比如d1字段到d字段需要個轉(zhuǎn)換,它的轉(zhuǎn)換函 數(shù)是DtToChar6。只要對應(yīng)好位置就可以。DxmChangeValue= ,DtToChar6, ”這樣配置即可。沒有關(guān)系的字段位置只是用逗號格開。表間關(guān)系配置:如果B表和C表字段存在著一定的關(guān)系,例如:B.a1=C.a2DxmWhere=“B.a1=C.a2 “表時間字段的配置:B表或

30、C表字段中存在時間字段b1,并且這個時間字段還是索引 的情況下。把它配置在這。DxmDTime=b1”旬月字符時間的配置:B表或C表字段中如果存在字段是旬月字符時間字段,那么在 這里配置。DxmCtime= “(3 )配置 System.ini 文件用戶在第一次使用軟件時候在配置界面輸入數(shù)據(jù)的配置信息, 軟件會自動把這些信息寫到配置文件中去,這里不需要用戶進(jìn)行配 置。8.2數(shù)據(jù)庫函數(shù)修改世行數(shù)據(jù)庫函數(shù)DataBaseConfig ()在ShModload中大項目庫函數(shù)DxmDataBaseConfig ()在 DxmModload 中新庫 ShXkDataBase ()在 ShModload

31、中DxmXkDataBase ()在 DxmModload它們共同的特點就是都包含四個參數(shù)Address地址端口DBase數(shù)據(jù)庫名字UName數(shù)據(jù)庫的用戶名PWord數(shù)據(jù)庫的密碼函數(shù)例子:DxmXkDataBase (Address As String, DBase As String,UNameAs String, PWord As String)SyBase數(shù)據(jù)庫:strConnect = Provider=MSDASQL.1;DRIVER=Sybase System 11;Persist Security Info=False;DSN=S RVR= & Address & DB= & D

32、Base & ;UID= & UName & ;PWD= & PWord & (連接串)conNewDB.open strConnect(打開數(shù)據(jù)庫)SRVR= ”127.0.0.1”地址端口DB =”DBName”數(shù)據(jù)庫名字UID =”user”數(shù)據(jù)庫的用戶名PWD =”mypass”數(shù)據(jù)庫的密碼SQL sever數(shù)據(jù)庫strConnect=Provider=SQLOLEDBs erver=127.0.0.1;database=sg;UID=sa;pwd=(連接串)conn.open strConnect(打開數(shù)據(jù)庫)地址端口數(shù)據(jù)庫名字?jǐn)?shù)據(jù)庫的用戶名數(shù)據(jù)庫的密碼server=”127.0.0

33、.1”database-,DBNamd,UID=”user”Pwd=”mypass”O(jiān)RACLE數(shù)據(jù)庫strConnect = Provider=OraOLEDB.Oracle; & _Data Source=MyOracleDB; & _你的數(shù)據(jù)源名,即數(shù)據(jù)庫名User Id=myUsername; & _用戶名,如果沒有可以為空Password=myPassword用戶密碼,如果沒有可以空(連接串)conNewDB.Open strConnect(打開數(shù)據(jù)庫)Data Source= DBNamO,數(shù)據(jù)庫名字User Id=” user”數(shù)據(jù)庫的用戶名Password= mypass”數(shù)據(jù)

34、庫的密碼(注:Data和Source中間含有空格,User和Id中間含有空 格。)ORACLE數(shù)據(jù)庫和前兩個數(shù)據(jù)庫不一樣,它只含有三個數(shù)據(jù)庫參 數(shù),所以在改寫它的時候要把數(shù)據(jù)庫函數(shù)里的參數(shù)從四個改寫到三 個,這點要注意。函數(shù)例子:DxmXkDataBas( DBase As String, UName As String, PWord AsString)如果仍然存在一定的差異,還要根據(jù)各地方自己的具體情況在 具體修改。8.3轉(zhuǎn)換函數(shù)的修改因為在數(shù)據(jù)轉(zhuǎn)儲時候,一些舊庫表中的數(shù)據(jù),要進(jìn)行處理后才 能錄入到新庫中去,這些處理數(shù)據(jù)的規(guī)則是根據(jù)新編碼的需求制定 出來的。(地方上可以根據(jù)自己的情況作調(diào)整)

35、轉(zhuǎn)換函數(shù):ShChangeValue()ShChangeValue(FCValue As String, FCVRelation As String)FCValue:從舊庫表字段中取出的數(shù)據(jù)RCVRelation:為轉(zhuǎn)換關(guān)系ShChangeValue()函數(shù)位于ShModload代碼文件中,如果地方上 的表轉(zhuǎn)儲還需要在字段上有新的處理。那么可以把新編寫的轉(zhuǎn)儲函 數(shù)放在ShChangeValue()中,這樣程序就自己調(diào)用。如果在地方上有特殊表字段轉(zhuǎn)換關(guān)系比較復(fù)雜,也可以對轉(zhuǎn)換 函數(shù)進(jìn)行修改。第9章技術(shù)支持在安裝使用過程中如遇到問題,可咨詢:63202455。附錄:轉(zhuǎn)換函數(shù)說明清單Minim函數(shù):

36、轉(zhuǎn)換微量雨7777的情況,如:7777 -某個特定的數(shù)值, 先處理成7777。Kqks函數(shù):提取閘門啟閉原碼中的開啟孔數(shù),提供5位字符,如 果為 44444,返回 0,否則返回 substring(0,1),如:23008-23Zmgd函數(shù):提取閘門開啟原碼中的閘門高度,提供5位字符,如果為44444,返回444,如果為88888,返回888,如果為99999,返回999。如果是*555或者*777或者*888或者*999,返回后三位,即:555,777,888,999(555無閘門控制;777微開;888:閘門提出水面)其它情況返回substring(2)/10substring(ij)k函

37、數(shù):表示從第i位開始取長度為j的字符串,i從0 開始,j大于0,取不到的情況下返回k,k可能為nullFillMonth0函數(shù):如果為四位數(shù)不變,三位數(shù)前面加0Tjsdbz函數(shù):返回新庫中的統(tǒng)計時間標(biāo)志,1(即:一日)-1,3(三 日)-2,5( 候)-3,10( 旬)-4,30( 月)-5,365( 年)-6如: 10-4,30-5Xysj(n)函數(shù):根據(jù)當(dāng)前記錄中的某個字段值來計算旬月時間n從0 開始表示從當(dāng)前記錄中取第n個字段值作為時間標(biāo)識DMID1)若DMID(旬月標(biāo)識)字段取值為0,將原表時間轉(zhuǎn)為8點整的時間,如:原時間:2005-08-01 00:00新表時間2005-08-01 08:00統(tǒng)計時段標(biāo)志STTDRCD=52)若DMID=1,表示是上月上旬量,將原表時間轉(zhuǎn)為當(dāng)月11日8 時,如:原時間:2005-07-01 00:00新表時間:2005-07-11 08:00統(tǒng)計時段標(biāo)志STTDRCD=43)若DMID=2,表示是上月中旬量,將原表時間轉(zhuǎn)為當(dāng)月21日8 時,如:原時間:2005-07-01 00:00新表時間:2005-07-21 08:00統(tǒng)計時段標(biāo)志STTDRCD=44)若DMID=3,表示是上月下旬量,將原表時間轉(zhuǎn)為當(dāng)月1日8 時,如:原時間:2005-08

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論