


[摘 要]本文應用Visual Basic6.0實現內蒙古自治區各氣象臺站生態與農牧業氣象數據遠程填報,同時將數據適時錄入Oracle數據庫,實現數據的上傳入庫,替代了過去生態與農牧業氣象數據通過Excel上傳和數據在氣象服務中使用的繁瑣過程。
[關鍵詞]Visual Basic 6.0;Oracle數據庫;生態;農牧業
doi:10.3969/j.issn.1673 - 0194.2016.24.101
[中圖分類號]TP31 [文獻標識碼]A [文章編號]1673-0194(2016)24-0-02
生態與農牧業氣象觀測是內蒙古自治區的特色觀測業務,為地方的生態文明建設發揮了重要作用。目前生態與農牧業氣象觀測數據是通過統一的Excel表格進行填報和上報,人工進行摘錄和統計分析,尚未形成一套統一的軟件供用戶應用,在規范性、便捷性和實用性等方面均給業務和用戶帶來不便。
為做好內蒙古自治區生態與農牧業氣象觀測業務工作,減少臺站觀測人員重復性工作,簡化工作流程,減輕業務人員工作壓力,加強生態與農牧業氣象觀測數據的集中、統一、高效的規范化管理,本文應用Visual Basic 6.0實現內蒙古自治區各氣象臺站生態與農牧業氣象數據的遠程填報,同時將數據適時錄入Oracle數據庫,實現數據的上傳入庫。
1 生態與農牧業氣象系統功能
該系統基于Visual Basic語言環境,調用FlexCell控件功能,主要實現天然牧草營養成分、牧草多樣性、森林可燃物、沙丘移動、土壤風蝕度、氣象災害及衍生災害等數據的填報、上傳和入庫功能??紤]到野外實際情況及工作的方便程度,該系統采用本地數據入ACCESS數據庫,遠程通過調用Oracle客戶端,將臺站數據直接寫入省級CIMISS數據對應數據表中,實現數據的本地備份和遠程上傳。
結合用戶需求,梳理農業氣象觀測項目和生態觀測項目,對比二者觀測內容的差異,重新將觀測內容進行調整,去除重復的填報內容,主要需求是兩方面:一是在原有功能模塊的基礎上進行補充完善,如在原有的農氣簿功能模塊中新增觀測功能,如圖1所示,小麥穗長、測定發育期為新補充完善的觀測項;二是新增功能模塊,如圖2所示,生態簿及其所含內容為該系統新增的功能模塊。
2 數據庫設計與連接
2.1 本地ACCESS數據庫的建立
Set adoRst=New ADODB.Recordset
Set adoCon=New ADODB.Connection
sDbase=fso.GetAbsolutePathName(App.Path+\"\..\Dbase\生態氣象.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\生態氣象.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 遠程Oracle數據庫的建立
與其他數據庫相比,本系統使用具有可用性和可擴展性好、數據安全性及穩定性強等優點的Oracle數據庫,在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,FRows)
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 程序窗體設計
本系統主窗體如圖3所示,功能主要包括數據的保存、瀏覽、打印及臺站ACCESS入庫和Oracle數據入庫和上傳。
主要參考文獻
[1]劉辰,高月秋.ORACLE數據庫系統——管理與應用[M].北京:人民郵電出版社,1999.
[2][美]THOMAS KYTE.ORACLE專家高級編程[M].袁勤勇,張玉魁,譯.北京:清華大學出版社,2002.
[3]薛孟強,汪厚祥.ORACLE數據庫并發控制和故障恢復[J].艦船電子工程,2003(5).
[4]邢海捷.ORACLE數據庫中的多粒度封鎖機制[J].微型電腦應用,2005(1).
[5]清源計算機工作室.Visual Basic 6.0開發寶典[M].北京:機械工業出版社,1999.