鄭玉峰+裴建宇+范超宇
[摘 要]本文應(yīng)用Visual Basic6.0實(shí)現(xiàn)內(nèi)蒙古自治區(qū)各氣象臺(tái)站生態(tài)與農(nóng)牧業(yè)氣象數(shù)據(jù)遠(yuǎn)程填報(bào),同時(shí)將數(shù)據(jù)適時(shí)錄入Oracle數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的上傳入庫(kù),替代了過(guò)去生態(tài)與農(nóng)牧業(yè)氣象數(shù)據(jù)通過(guò)Excel上傳和數(shù)據(jù)在氣象服務(wù)中使用的繁瑣過(guò)程。
[關(guān)鍵詞]Visual Basic 6.0;Oracle數(shù)據(jù)庫(kù);生態(tài);農(nóng)牧業(yè)
doi:10.3969/j.issn.1673 - 0194.2016.24.101
[中圖分類(lèi)號(hào)]TP31 [文獻(xiàn)標(biāo)識(shí)碼]A [文章編號(hào)]1673-0194(2016)24-0-02
生態(tài)與農(nóng)牧業(yè)氣象觀測(cè)是內(nèi)蒙古自治區(qū)的特色觀測(cè)業(yè)務(wù),為地方的生態(tài)文明建設(shè)發(fā)揮了重要作用。目前生態(tài)與農(nóng)牧業(yè)氣象觀測(cè)數(shù)據(jù)是通過(guò)統(tǒng)一的Excel表格進(jìn)行填報(bào)和上報(bào),人工進(jìn)行摘錄和統(tǒng)計(jì)分析,尚未形成一套統(tǒng)一的軟件供用戶應(yīng)用,在規(guī)范性、便捷性和實(shí)用性等方面均給業(yè)務(wù)和用戶帶來(lái)不便。
為做好內(nèi)蒙古自治區(qū)生態(tài)與農(nóng)牧業(yè)氣象觀測(cè)業(yè)務(wù)工作,減少臺(tái)站觀測(cè)人員重復(fù)性工作,簡(jiǎn)化工作流程,減輕業(yè)務(wù)人員工作壓力,加強(qiáng)生態(tài)與農(nóng)牧業(yè)氣象觀測(cè)數(shù)據(jù)的集中、統(tǒng)一、高效的規(guī)范化管理,本文應(yīng)用Visual Basic 6.0實(shí)現(xiàn)內(nèi)蒙古自治區(qū)各氣象臺(tái)站生態(tài)與農(nóng)牧業(yè)氣象數(shù)據(jù)的遠(yuǎn)程填報(bào),同時(shí)將數(shù)據(jù)適時(shí)錄入Oracle數(shù)據(jù)庫(kù),實(shí)現(xiàn)數(shù)據(jù)的上傳入庫(kù)。
1 生態(tài)與農(nóng)牧業(yè)氣象系統(tǒng)功能
該系統(tǒng)基于Visual Basic語(yǔ)言環(huán)境,調(diào)用FlexCell控件功能,主要實(shí)現(xiàn)天然牧草營(yíng)養(yǎng)成分、牧草多樣性、森林可燃物、沙丘移動(dòng)、土壤風(fēng)蝕度、氣象災(zāi)害及衍生災(zāi)害等數(shù)據(jù)的填報(bào)、上傳和入庫(kù)功能??紤]到野外實(shí)際情況及工作的方便程度,該系統(tǒng)采用本地?cái)?shù)據(jù)入ACCESS數(shù)據(jù)庫(kù),遠(yuǎn)程通過(guò)調(diào)用Oracle客戶端,將臺(tái)站數(shù)據(jù)直接寫(xiě)入省級(jí)CIMISS數(shù)據(jù)對(duì)應(yīng)數(shù)據(jù)表中,實(shí)現(xiàn)數(shù)據(jù)的本地備份和遠(yuǎn)程上傳。
結(jié)合用戶需求,梳理農(nóng)業(yè)氣象觀測(cè)項(xiàng)目和生態(tài)觀測(cè)項(xiàng)目,對(duì)比二者觀測(cè)內(nèi)容的差異,重新將觀測(cè)內(nèi)容進(jìn)行調(diào)整,去除重復(fù)的填報(bào)內(nèi)容,主要需求是兩方面:一是在原有功能模塊的基礎(chǔ)上進(jìn)行補(bǔ)充完善,如在原有的農(nóng)氣簿功能模塊中新增觀測(cè)功能,如圖1所示,小麥穗長(zhǎng)、測(cè)定發(fā)育期為新補(bǔ)充完善的觀測(cè)項(xiàng);二是新增功能模塊,如圖2所示,生態(tài)簿及其所含內(nèi)容為該系統(tǒng)新增的功能模塊。
2 數(shù)據(jù)庫(kù)設(shè)計(jì)與連接
2.1 本地ACCESS數(shù)據(jù)庫(kù)的建立
Set adoRst=New ADODB.Recordset
Set adoCon=New ADODB.Connection
sDbase=fso.GetAbsolutePathName(App.Path+"\..\Dbase\生態(tài)氣象.mdb")
sCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&sDbase&";Persist Security Info=False"
adoCon.ConnectionString=sCon
adoCon.Open
adoRst.ActiveConnection=adoCon
adoRst.CursorType=adOpenKeyset
adoRst.LockType=adLockOptimistic
adoRst.Open sTable
sDbase=fso.GetAbsolutePathName(App.Path+"\..\Dbase\Extremum\生態(tài)氣象.mdb")
sCon="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&sDbase&";Persist Security Info=False"
Set adoRst_Ext=New ADODB.Recordset
SetadoCon_Ext=New ADODB.Connection
adoCon_Ext.ConnectionString=sCon
adoCon_Ext.Open
adoRst_Ext.ActiveConnection=adoCon_Ext
adoRst_Ext.CursorType = adOpenKeyset
adoRst_Ext.LockType = adLockOptimistic
adoRst_Ext.Open sTable
2.2 遠(yuǎn)程O(píng)racle數(shù)據(jù)庫(kù)的建立
與其他數(shù)據(jù)庫(kù)相比,本系統(tǒng)使用具有可用性和可擴(kuò)展性好、數(shù)據(jù)安全性及穩(wěn)定性強(qiáng)等優(yōu)點(diǎn)的Oracle數(shù)據(jù)庫(kù),在VB模塊中主要代碼如下。
Dim adoCon As New ADODB.Connection
Dim adoRst As New ADODB.Recordset
Dim SqlStr As String
adoCon.Open"Provider=OraOLEDB.Oracle;Password=******;UserID=******;Data Source=******;Persist Security Info=True"
SqlStr="Select*From AGME_SAND_MOVE_TAB"
adoRst.CursorLocation=adUseClient
adoRst.Open SqlStr,adoCon,adOpenDynamic,adLockOptimistic,adCmdText
Result=Grass_Develop_Observation_cimiss(adoRst,adoRst_Ext,K,Index,F(xiàn)Rows)
adoRst.Close
adoCon.Close
para_adoRst.AddNew
para_adoRst!D_DATETIME = Grid1(Index).Cell(FRows+i-1,1).Text
para_adoRst!V01300=Grid1(Index).Cell(FRows+i-1,2).Text
……
para_adoRst!V04001 = Left(Grid1(Index).Cell(FRows+i-1,1).Text,4)
para_adoRst!V04002=Mid(Grid1(Index).Cell(FRows+i-1,1).Text,6,2)
para_adoRst!V04003 = Right(Grid1(Index).Cell(FRows+i-1,1).Text,2)
para_adoRst!D_IYMDHM=sDate
para_adoRst!D_RYMDHM=sDate
3 程序窗體設(shè)計(jì)
本系統(tǒng)主窗體如圖3所示,功能主要包括數(shù)據(jù)的保存、瀏覽、打印及臺(tái)站ACCESS入庫(kù)和Oracle數(shù)據(jù)入庫(kù)和上傳。
主要參考文獻(xiàn)
[1]劉辰,高月秋.ORACLE數(shù)據(jù)庫(kù)系統(tǒng)——管理與應(yīng)用[M].北京:人民郵電出版社,1999.
[2][美]THOMAS KYTE.ORACLE專(zhuān)家高級(jí)編程[M].袁勤勇,張玉魁,譯.北京:清華大學(xué)出版社,2002.
[3]薛孟強(qiáng),汪厚祥.ORACLE數(shù)據(jù)庫(kù)并發(fā)控制和故障恢復(fù)[J].艦船電子工程,2003(5).
[4]邢海捷.ORACLE數(shù)據(jù)庫(kù)中的多粒度封鎖機(jī)制[J].微型電腦應(yīng)用,2005(1).
[5]清源計(jì)算機(jī)工作室.Visual Basic 6.0開(kāi)發(fā)寶典[M].北京:機(jī)械工業(yè)出版社,1999.