Visual Basic与Oracle数据库在生态与农牧业气象中的应用
2017-02-04郑玉峰裴建宇范超宇
郑玉峰+裴建宇+范超宇
[摘 要]本文应用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.