适应北方片水文资料整编程序的水量计算体会
2010年12月27日 13:22 作者:景淑娟 刘胜男 全占东
摘要介绍各月水量的计算方法,探讨北方片水文资料整编程序,包括注册表的操作、数据库服务器的配置、数据库的查询、成果的Excel输出,以为深入了解水文资料整编技术提供参考。 中国论文网_+lOQ4v"W F0g
关键词北方片水文资料整编程序;水量计算;体会 如何快速发表论文m[WDm"kr!|0
"vKY9Ic GJ@%lU0
在水文调查资料整编过程中,还原计算需要各月水量值,2007年以前辽宁水文资料整编使用辽宁水文资料整编程序,该程序具有计算各月水量的功能[1]。
从整编2008年水文资料开始,辽宁使用了北方片全国统编水文资料整编程序,该程序不提供计算各月水量的功能。在进行水文调查资料整编时,需要用水文资料
整编中的成果表《逐日平均流量表》逐日相加(累计值单位:m3/s),再乘以日秒数8.64万s,得到各月水量值(单位:万m3),相加可选用Excel
列求和功能或使用计算器累加,计算方法十分烦琐。为解决水文调查资料整编水量还原对各月水量的需要,现介绍一种利用程序计算各月水量的方法,该方法适合全
国统编的北方片整编程序计算环境,是在北方片水文资料整编的基础上,通过程序在成果数据库中读取逐日平均流量值,计算各月流量总数,输出各月水量表,输出
格式与以前使用程序计算的结果相同。 发表论文代理G5n*h/LV0SFA0 1基本思路 中国论文网vI-}[(E;X"q6@)vJ
hB
北方片水文资料整编程序,计算逐日流量结果保存在数据库中及Excel成果表
中。程序可以在数据库中读取,也可以在Excel成果表中读取。在Excel成果表中读取数据要知道成果表存放在哪个目录中,该目录位置信息可以通过北方
片程序读出,也可以在数据库表COM_PATHSET中得到[2-3]。通过北方片程序读出要手动操作,十分烦琐;另外,程序操作Excel速度比较慢,
要尽量避免操作Excel。在COM_PATHSET表中读取要连接数据库,对于不同的使用者该目录有可能不同。
s/~$WBbz)L0 在数据库中直接读取流量日
表数据,首先,要知道数据库的配置参数,用来连接数据库,北方片水文资料整编程序数据库配置参数保存在注册表中,根键
“hkey_local_machine”,子键“software\田中岳\北方片整汇编软件”,“linkset”项键值保存数据库连接字。其次,要
了解数据库中流量日表在数据库中的位置,逐日流量数据保存在数据库表sou_zcgb_qal中;该表的结构中stcd字段是站号,yr字段是年份,yy
是月份,d01,d02,d03,……,d31分别表示1日、2日、3日,……、31日平均流量。
9F0]A)} Ym4K?0 2实现方法
RZ(z$`*n2PX0 获取数据库配置参数,使用Delphi7.0语言读取注册表中数据库配置参数,配置数据库的程序段如下:
,_L
Q7T-~y!v0 Procedure TForm1.FormCreate(Sender: TObject);
/L%D;c/sJM7\ L0 var
6]p.cD)orowe0 registry1:tregistry;// 注册注册表对象 中国论文网A1_M'Nr/J
s:string; 中国论文网 f+k(QVS
Begin
+Tak&}P6kd;tB?0 try 中国论文网5x
E+O,sKA%lW@[
registry1:=tregistry.Create;// 创建注册表对象 中国论文网,tH1u
[.A,B5E]
with registry1 do
ZI$w`4p3];W
kd.f
J)Z0 begin 中国论文网8i9imnq3}:C
rootkey:=hkey_local_machine;// 确定根键
'cw8oJ!S$c@_x0 // 注册子键software\田中岳\北方片整汇编软件
e,o4u!es,\0 if openkey('software\田中岳\北方片整汇编软件',false) then
6L's
Y2Iag$]+q0 s:=readstring('linkset');// 读 linkset 键值
4v`PJZ(_ {r4~)C"T0 end;
])[#e;|@a0 ADOConnection1.ConnectionString:=s;//数据库连接字设置 中国论文网4[ ttylw1D.W!g2Q
except 中国论文网P
NmpaG9w1d4E3f
application.MessageBox('读取注册表数据失败','提示信息',64); 中国论文网Q,H `5O o#P1F.x
end; 中国论文网} P"` XO,m`g
i
registry1.Destroy;// 释放注册表对象 中国论文网"ua1i'A5W9j$sWL
end;
+N#}7L9fMa;`!MY0 逐日流量数据查询,要查询某年某站的逐日流量,在配置好数据库的情况下,查询逐日流量的程序关键语句如下: 中国论文网d%P8?5WbFjbb
with adoquery1 do中国论文网h7J
aL;g"X `,Q
begin 中国论文网 fp.?It9C,j5P
close;sql.Clear; 中国论文网
yzD3SG8a
sql.Add('select stcd 站号,yr 年份,yy 月,d01,d02,d03,d04,d05'+
K-o!R;A8~?b F0 ',d06,d07,d08,d09,d10,d11,d12,d13,d14,d15,d16,d17,d18,'+
f[r6d,})l0 'd19,d20,d21,d22,d23,d24,d25,d26,d27,d28,d29,d30,d31,+
hWWl6s;L4L2^oM0 ′ from sou_zcgb_qal'); 中国论文网 AC;L&i+PS!gT-d
sql.Add('where (stcd=:stcd1) and (yr=:yr1)'); 中国论文网:Y'p
LF
?*ORvq
sql.Add('order by yy'); 中国论文网\#F&@F}z:?xi?#ur
parameters.ParamByName('stcd1').Value:=edit1.Text;
7coo
z/|#v0 parameters.ParamByName('yr1').Value:=edit2.Text; 中国论文网0NG$m2~$oBd+\6@}B/G,L
open; 中国论文网]Wj/|}i
end;
#M%c2gW6R!ejpx"A0 根据查询结果计算逐日流量月总数,再乘日秒数计算月水量。
Iy
ar'A._
]Q4m.Z0 3计算结果输出
|
H~N(Aqff0
经过计算的结果输出Excel表中,Excel表采用模板形式。在程序中与Excel连接采用VCL的方法。首先在程序中加入
TexcelApplication、TexcelWordbook和TexcelWorksheet对象,分别命名为EA、EW、ES。由于使用以上3
个控件,所以需要加入ExcelXP、OleServer单元。连接模板文件采用如下语句: 中国论文网%H:Ie\G1Y7q
TryEA.Connect; 中国论文网@
T
^B|J#`
EA.Workbooks.Open(模板文件名,null,null,null,null, 中国论文网de5[ER)a-W5b
null,null,null,null,null,null,null,null,null,null,1);
@AH*~i\9y:z$I0 EW.ConnectTo(EA.Workbooks[1] as _workbook);
(p3^+h^%WjAU)M0 ES.ConnectTo(EW.Worksheets[1] as _worksheet);
d6qi/vv)t0 except
~0M/`P5c.T q)ufS0 begin
q!sqb*z
~nTK0 EA.Disconnect; //出现问题时关闭
!}9c k,jO \^0\
\0 EA.Quit;showmessage(′请选用 Excel 电子表格′);
8qC$R9D,K"oZ*T,b0 end;
K!u7c'Q:]8n%L"_%F0 end; 中国论文网j|%b)s7b7\'^ G.Q
程序中模板与辽宁省2007年以前使用的水量计算成果模板相同,计算结果填表,单元格的调用使用如下语句: 中国论文网s&liNaO%]*o
EA.Cells.Item[I,j]:=结果
C$o7Zp$\ea kh0 成果填表完成后,需要对成果文件保存,成果文件保存采用如下语句: 中国论文网Z0r T$i/mgM-l`8T
ES.SaveAs(保存的文件名)
,n{h/kHL)Q0 4体会 中国论文网5C aF.h:Jw1sa9|o
经过2009年的使用,该方法数据库服务器的配置采用读注册表的方法,程序不用人工单独配置数据库,使得程序操作简单方便。逐日流量数据采用数据库结
果,使得操作不用了解成果目录的位置,减少了人为干预,自动化程度得到提高。成果输出采用原来水文资料整编的模板,便于与以前水文调查整编程序的衔接
[4]。由于使用时间短,整编程序还不够完善,有待于今后进一步改进。
1M%f2u4PUY]u lz0
"R:@5bL8}q1oJl+O0 5参考文献
)|.I*O bq,c7k"b0 [1] 李璇,王福利,肖鹏云.运用Excel进行水文资料整编成果表明方法[J].黑龙江水利科技,2009(5):82-83.
6qLP6Aw0 [2] 贺顺德,刘立,王文成.水土保持工程影响地区水文资料还原方法探讨[J].人民黄河,2008,30(12):43-44.
:W
]8S,i&\$v]-h6S0 [3] 孙园宾.浅谈水文数据库开发利用存在的主要问题及对策[J].江苏水利,2008(12):26-27.
}HwEz:r0 [4] 王意惟,李登民,隋铁成.水文原始数据库的开发应用与分析评价[J].东北水利水电,2008(12):40-41. 中国论文网T)ZgC:O&i
P