冲积扇vb连接数据库

vb连接数据库  时间:2021-02-26  阅读:()
第14卷第1期水土保持研究Vol.
14No.
12007年2月ResearchofSoilandWaterConservationFeb.
,2007*VB开发GIS系统中提高系统效率的方法刘晓,于磊(山东理工大学资源与环境工程学院,山东淄博255049)摘要:对GIS系统从设计到实施的各个环节进行研究,讨论了VB平台下GIS系统开发的软件运行效率问题.
并结合经验,提供了优化的技巧.
关键词:软件运行效率;VisualBasic;GIS系统中图分类号:TP79文献标识码:A文章编号:1005-3409(2007)01-0159-02TheMethodtoImproveSystemEfficiencyinGISSystemDevelopmentBasedonVisualBasicLIUXiao,YULei(DepartmentofResourceandEnvironment,ShandongUniversityofTechnology,Zibo255049,China)Abstract:AstudyontheprogresstodevelopaGISsystemismade,andthesoftwareefficiencyofGISsystemdevelopedbyVis-ualBasicisdiscussed.
Attheend,methodsareprovidedtoimprovethesystemefficiency.
Keywords:systemefficiency;VisualBasic;GISsystem1引言地理信息系统(GIS)是一种专门用于管理和分析空间分布数据的计算机系统,是以采集、存储、管理分析和描绘整个或部分地球表面与空间分布有关的数据的空间信息系统.
地理信息系统的实现依赖地理信息系统软件.
地理信息系统软件处理海量数据,其操作的空间对象同时带有空间位置信息和属性信息,空间对象各个要素之间还存在拓扑关系.
进行空间对象的分析,提取有用信息过程中,有区别于其他应用系统的特殊的空间分析方法.
因此地理信息系统的设计与开发,与一般的系统开发有很大区别,有其独特的技术.
相比较一般软件系统的开发,其系统效率的优化与提高也有独特的技术.
VisualBasic是微软推出的可视化编程语言,由于其简单易用且功能强大,在包括地理信息系统行业在内的许多领域得到了广泛的应用.
使用VB语言开发应用型地理信息系统速度快,效率高,应用范围广,兼容性好,且VB语言和VBScript语言有很大相似性,移植性强.
由于这些特点,现有商业化地理信息系统组件都以VB作为基本开发语言,其帮助中所提供等实例多数以VB编写,如现有通用的Ma-pObjects,MapX,SuperMap等.
由于VB是一种解释型语言,其开发的软件执行效率低于VC++、Delphi等全编译语言.
又由于VB不能完全支持面向对象程序设计,使VB在开发系统软件、底层软件时受到很大的局限.
本文结合经验,讨论了VB平台下进行GIS系统开发提高软件运行效率的原理及技巧.
应用型地理信息系统的开发主要有三种开发模式:(1)基于编程语言的完全独立开发.
独立开发费时费力,其产品功能很难达到商业化GIS软件水平,故很少采用.
(2)基于GIS工具软件提供的开发语言的二次开发.
单纯二次开发多数使用宏语言,由于受GIS工具软件提供开发语言的限制,其效率和功能都不能完全满足用户需求.
(3)基于通用软件开发工具对专业GIS工具软件进行的集成二次开发.
集成二次开发利用专业GIS工具软件实现GIS基本功能,以通用软件开发工具进行开发.
集成开发目前主要有两种方式:一种是以OLE自动化方式或DDE方式启动GIS工具软件在后台执行,实现地理信息处理功能;另一种是利用建立在OCX技术基础上的GIS控件,直接将GIS功能嵌入系统中.
系统效率的概念所包含的范围很广,可以指用户使用的方便程度,也可以指系统运行时消耗的计算机资源及计算机处理用户请求所需要的时间,本文主要讨论后者.
一个高效的软件,在实现某一功能时应该比同类软件运行的更快,而且占用更少的系统资源;除此之外,该系统应具有较好的升级能力及数据更新能力,源程序还应该具有较好的可读性及可移植性.
高效的GIS系统,由于科学地分配了内存、CPU时间等系统资源,不仅能够缩短用户等待时间,节省系统资源,还可以实现许多低效系统无法实现的功能,处理更大数据量的信息,进行更复杂的空间分析,减少系统出错及崩溃的机率等.
本文汇集了作者在使用VB进行软件开发时积累下来的一些经验,通过一些简单的例子来展示如何用VB开发高效的GIS系统.
其中包含了一些可能对VB程序员非常有帮助的技术.
2系统设计的优化系统设计包括系统总体设计和系统详细设计.
其任务是*收稿日期:2006-02-21作者简介:刘晓(1981-),男,毕业于西北大学地理信息系统专业,主要从事数字地图、GIS系统开发与设计方面的教学与研究.
根据系统研制的目标来规划系统的规模和确定系统的各个组成部分,说明它们在整个系统中的作用与相互关系,以及确定系统的软、硬件配置,规定系统采用的技术规范.
在此基础上,进行子系统和数据库的详细设计,指导系统的开发.
系统设计阶段的优化,应始终贯穿系统的思想,从总体角度考虑系统资源节省与系统效率提高的问题.
选择高效的数据库连接方式,快速的图形显示方式,定义通用的坐标系统及坐标表示方法将使下一步的开发工作简明而条理,开发出的GIS系统能高效运行,且具有较好的升级潜力.
在系统设计阶段,还应该使用面向对象的方法,划分出系统的主要对象及其具有的事件、属性、方法.
VB提供的机制不完全支持面向对象的设计和编码,但是VB提供了简单的类.
通常对象的使用将导致代码的效率降低,对于这一点应该从多个角度考虑.
考察代码的效率不能纯粹从运行速度的角度出发,软件占用的资源也是需要考虑的因素之一.
在需要使用面向对象方法的时候尽量使用它,可以在整体上提升软件的性能.
3系统实施中的代码优化系统实施是在系统设计的原则指导下,按照详细设计方案确定的目标、内容和方法,分阶段分步骤完成系统开发的过程.
系统实施的优化主要体现在代码效率的提高上,既通过变量类型的合理选取,循环、函数、子对象等的合理使用,来提高GIS系统执行效率3.
1变量类型的合理选取VB提供了丰富的变量类型,但有许多数据类型执行效率很低.
Variant型变量占用16个字节的空间,使用它虽可以减少设计的工作量和代码量,但导致了系统运行减慢.
一个软件经过了严格设计和按照规范编码的话,完全可以避免使用变体类型.
在绝大多数情况下,我们可以将Single,Double和Currency类型的变量替换为Integer或Long类型的变量,因为VB处理Integer和Long的能力远远高于处理其它几种数据类型.
GIS系统中涉及坐标数据精度的问题比较多,此时可以选择使用Single或Double型数据来保存小数.
但是小数也可以保存在Integer类型的变量中.
例如程序中约定有三位小数,那么只需要将保存在Integer变量中的数值除以1000就可以得到结果.
数组是VB中最高效的数据结构之一,当有多个保存类似数据的变量时,可以考虑将他们用一个数组代替.
进行用户界面设计时,对于同样类型的控件,使用对象数组可以大大加快程序加载速度.
使用动态数组对代码的执行速度不会产生太大的影响,但是在某些情况下也可以节约大量的资源.
GIS开发中常常需对大规模矩阵进行操作,此时可用动态数组以节省内存开销.
集合(Collection)也是一种效率较低的数据类型,其存取所需时间约为数组变量的100倍,在系统中也应尽量使用数组代替.
3.
2程序分支的优化此处所指的程序分支,包括对函数的调用,循环的调用,以及子对象的引用.
由于循环会占用额外的CPU时间,如果一个循环体只执行2~3次,而且循环体由几行代码组成.
在这种情况下,完全可以把循环展开.
调用只有几行代码的函数也是不可取的)))调用函数所花费的时间或许比执行函数中的代码需要更长的时间.
在VB中,通过使用/#0来实现对象的引用.
但这种方法引用效率很低.
可以使用With语句或者将用另一个对象保存子对象.
原始代码优化后方案1优化后方案2Map1.
Layers(/pot_CG0).
Selectable=TrueMap1.
Layers(/pot_CG0).
Editable=TrueMap1.
Layers(/pot_cg0).
Visible=TrueWithMap1.
Layers(/pot_CG0).
selectable=true.
editable=true.
visible=trueEndWithDimlyrasmapxlib.
layerSetlyr=map1.
layers(/pot_CG0)Lyr.
selectable=trueLyr.
editable=trueLyr.
visible=true3.
3运算方法的选择对于一些运算,不同的处理方法带来不同的效率.
比如,判断字符串是否为空时,由于进行字符串比较需要的处理量比读取属性还要大,完全可以用检验字符串长度的方法代替.
进行图元捕捉或构建拓扑关系时,也应尽量使用量算空间距离等方法,设定一定等容差范围.
在进行窗口平移或改变对象的位置运算时,可以通过改变Width,Height,Top和Left属性.
实际上这是一种低效的做法,因为程序修改了四个属性后,窗口需要会被重绘.
效率高的做法是使用Move方法.
另外,在涉及较底层的开发时,如果需要绘制大量图形,应该使用Api函数进行绘图,其绘图速度远远超过VB绘图方法的绘图速度,并且可以直接实现许多复杂的图形运算.
在连接大型数据库时,将数据识别控件与数据库表中的字段相绑定将会带来数据访问速度的降低,因此这种方法应该尽量避免使用.
3.
4对外接程序模块的优化此处讨论的外接程序模块泛指模块、类模块、ActiveX控件和DLL.
将通用的函数保存在模块中,可以提高源代码的复用性.
但是只有模块达到一定复杂程度,对它的调用才会带来效率的提高.
否则VB将花费大量时间用于加载卸载这些模块.
在涉及到使用ActiveX控件和DLL的时候,很多程序员先将它们编译好,然后再加入工程中.
这种做法带来效率的降低,因为从VB连接到一个外部对象需要耗费大量的CPU处理能力.
每当你调用方法或存取属性的时候,都会浪费大量的系统资源.
如果有ActiveX控件或DLL的源代码,最好将它们作为工程的私有对象.
当程序引用了ActiveX控件和DLL文件,该系统发布时需要将所有引用到的文件打包并安装注册在用户的计算机中.
由于不同厂商提供的ActiveX控件和DLL文件各不相同,安装后有可能与用户计算机中的原有系统发生冲突,并可能导致将来升级维护的困难,因此不推荐使用过多的控件以及DLL文件.
4编译优化在VB中执行代码时,VB首先是将代码编译为P-代码,然后再解释执行编译好的P-代码.
在编译环境下,使用这种代码要比本机代码快.
本机代码是VB6以后才推出的选项,编译时VB使用机器指令生成EXE文件.
当编译为EXE文件后,本机代码的执行速度比P-代码快.
由于GIS系统对系统效率要求严格,最好能编译为本机代码.
选择编译为本机代码时有几个选项,一般可以选择代码速度优化和针对PentiumPro优化.
代码速度优化可以编(下转第163页)#160#水土保持研究第14卷积扇F7则更晚,而且到目前仍受玛纳斯河的作用,并处于动态平衡.
据推断,这几期规模较小冲积扇的形成时间应该在百年尺度上.
3冲积扇演化与构造活动的讨论对构造活动在冲积扇发育过程中的作用,学者之间还存在争议.
有人认为构造活动仅提供冲积扇发育的地点和条件,在其后的发育过程则作用甚微.
有人则认为构造活动是冲积扇发育的前提,没有构造活动所形成的高差显著的物源区和堆积区冲积扇则失去了发育的环境[1,2].
我们认为对于构造活动在冲积扇发育过程中所起的作用不能一概而论,应综合区域气候条件、构造活动特点及冲积扇发育特征等来考虑.
从玛纳河山麓冲积扇发育情况来看,山前的构造运动对冲积扇的发育有较大的影响,且构造活动的阶段性与冲积扇发育的分期性具有较好的对应关系.
玛纳斯河山麓冲积扇紧邻霍尔果斯、玛纳斯、吐谷鲁三个逆断裂-背斜.
早更新世晚期-中更新世,该逆断裂-背斜带经历了一次强烈活动[9,12],随后构造活动趋于平静,山地被剥蚀,大量的冲积物在玛纳斯背斜前堆积形成了第一期冲积扇.
在中更新世末-晚更新世初,霍尔果斯、玛纳斯、吐谷鲁北斜又经历了一次强烈活动[12],冲积扇F1的动态平衡被打破,原来的沉积区变为剥蚀区,第二期冲积扇开始形成并切割第一期冲积扇.
晚更新世以来,该背斜带主要表现为断裂继承性强烈活动[10],这显然与第三期和第四期冲积扇的形成阶段有一定的对应关系.
从冲积扇的空间布局来看,冲积扇F1、F2和F3除以玛纳斯河峡谷出口为扇项向北发展的同时,以一定的角度向西偏转,扇体东边未紧贴山根部.
一个合理的解释就是玛纳斯河东边土谷鲁背斜要比西边玛纳斯背斜的抬升速率大,这种解释得到了汪一鹏等[8]研究的确证.
汪一鹏等通过阶地变形测量,阶地位错和断层陡坎形态分析,吐谷鲁背斜核部断裂垂直位移速率在塔西河为0.
84~0.
91mm/a,在玛纳斯河为0.
28~0.
43mm/a;全新世以来玛纳斯背斜核部的垂直滑动速率为0.
25mm/a左右,霍尔果斯背斜核部的平均抬升速率为1.
4~1.
5mm/a,说明第二排背斜带的抬升速率由东向西逐渐递减,且玛纳斯河山麓冲积扇演变与山前构造活动有相关性.
4初步认识根据航空相片记录,结合野外考察和沉积分析,玛纳斯河山麓冲积扇由南向北划分为四期规模较大的冲积扇和三期规模较小的冲积扇,其中新冲积扇对老冲积扇有切割和叠置现象.
玛纳斯河山麓冲积扇发育在天山北麓准噶尔盆地南缘的乌鲁木齐坳陷中,其南边紧邻霍尔果斯-玛纳斯-吐谷鲁逆断裂-背斜带,西边与安集海背斜相望.
根据区域构造活动的特征和阶段,对玛纳斯河山麓冲积扇的形成和演化过程进行了演绎,可以看出玛纳斯河山麓冲积扇的形成演化与山前构造运动,尤其是玛纳斯与吐谷鲁逆断裂-背斜的活动方式和强度密切相关.
另一方面,根据冲积扇的空间展布格局,可以看出玛纳斯河西边的玛纳斯背斜和东边的吐谷鲁背斜抬升速率不一致,吐谷鲁背斜的抬升速率由东向西递减,这又表明冲积扇是指示构造活动的特征地貌.
致谢:唐自华在沉积年代测定过程做了很多具体工作,在此感谢!
参考文献:[1]程绍平,杨桂枝.
冲积扇和山前倾斜平原的构造地貌学研究综述[J].
地震地质译丛,1996,18(1):1-10.
[2]莫多闻,朱忠礼,万林义.
贺兰山东麓冲积扇发育特征[J].
北京大学学报:自然科学版,1999,35(6):816-823.
[3]莫多闻.
冲积扇研究的发展及其理论与实际意义[A].
地貌.
环境.
发展[C].
北京:中国环境科学出版社,1995.
161-165.
[4]王萍,卢演俦,丁国瑜,等.
甘肃疏勒河冲积扇发育特征及其对构造活动的响应[J].
第四纪研究,2004,24(1):74-81.
[5]高红山,潘保田,邬光剑.
祁连山东段冲积扇的发育时代及其成因[J].
兰州大学学报:自然科学版,2005,41(5):1-4.
[6]袁国映,扬发相,艾根青等.
玛纳斯河流域地质地貌特征[A].
中国新疆玛纳斯河流域农业生态环境资源保护与合理利用研究[C].
乌鲁木齐:新疆科技卫生出版社,1995.
13-21.
[7]史新民,杨景春,李有利,等.
玛纳斯河流域地貌与地下水的关系.
地理与地理信息科学[J],2004,20(3):56-60.
[8]张培震,邓起东,徐锡为.
天山北麓玛纳斯活动逆断裂-褶皱带的变形特征与构造演化[A].
活动断裂研究(3)[C].
北京:地震出版杜,1994.
[9]汪一鹏,沈军.
天山北麓活动构造基本特征[J].
新疆地质,2000,18(3):203-210.
[10]邓起东,冯先岳,张培震,等.
天山活动构造[M].
北京:地震出版社,2000.
[11]方小敏,史正涛,杨胜利,等.
天山黄土与古尔班通古特沙漠发育及北疆干旱化[J].
科学通报,2002,47(7):540-545.
[12]胡玲,何登发,胡道功.
准噶尔盆地南缘霍尔果斯-玛纳斯-吐谷鲁断裂晚新生代构造变形的ESR测年证据[J].
地球学报,2005,26(2):121-126.
(上接第160页)译出速度较快的执行文件,但执行文件比较大.
由于GIS软件对系统效率要求高,因此推荐选择该项.
选择针对Pent-iumPro优化后,编译出的可执行程序在PentiumPro和Pentium2以上的机器上可以运行得更快,而在比较老的机器上要稍稍慢一些.
考虑到现在计算机硬件的水平,最好选择该项.
此处还有一个选项是产生符号化调试信息.
该项能在编译过程中生成一些调试信息,使用户可以利用VisualC++一类的工具来调试编译好的代码.
使用该选项会生成一个.
pdf文件,该文件记录了可执行文件中的标志信息.
当程序拥有API函数或DLL调用时,使用该选项十分有益.
5结语系统效率问题涉及的因素有很多,计算机操作系统,硬件环境,开发平台,数据特征等都会在很大程度上影响系统运行时的效率.
上面提到的系统效率优化方法,是在实际开发中积累经验总结.
将以上提到的优化内容贯穿到系统开发的过程中,在不改变系统结构及实现算法的情况下,能够最大限度节省系统资源,提高系统效率.
#163#第1期崔卫国等:玛纳斯河山麓冲积扇演化及其对区域构造活动的响应

Virmach($5.23/年)年付VPS闪购

每每进入第四季度,我们就可以看到各大云服务商的促销力度是一年中最大的。一来是年底的促销节日活动比较多,二来是商家希望最后一个季度冲刺业绩。这不还没有到第四季度,我们看到有些商家已经蠢蠢欲动的开始筹备活动。比如素有低价VPS收割机之称的Virmach商家居然还没有到黑色星期五就有发布黑五促销活动。Virmach 商家有十多个数据中心,价格是便宜的,但是机器稳定性和速度肯定我们也是有数的,要不这么低的...

Atcloud:全场8折优惠,美国/加拿大/英国/法国/德国/新加坡vps,500g大硬盘/2T流量/480G高防vps,$4/月

atcloud怎么样?atcloud刚刚发布了最新的8折优惠码,该商家主要提供常规cloud(VPS)和storage(大硬盘存储)系列VPS,其数据中心分布在美国(俄勒冈、弗吉尼亚)、加拿大、英国、法国、德国、新加坡,所有VPS默认提供480Gbps的超高DDoS防御。Atcloud高防VPS。atcloud.net,2020年成立,主要提供基于KVM虚拟架构的VPS、只能DNS解析、域名、SS...

Linode($5/月),新用户注册送100美元,11个数据中心云服务器

关于Linode,这是一家运营超过18年的VPS云主机商家,产品支持随时删除(按小时计费),可选包括美国、英国、新加坡、日本、印度、加拿大、德国等全球十多个数据中心,最低每月费用5美元($0.0075/小时)起。目前,注册Linode的新用户添加付款方式后可以获得100美元赠送,有效期为60天,让更多新朋友可以体验Linode的产品和服务。Linode的云主机产品分为几类,下面分别列出几款套餐配置...

vb连接数据库为你推荐
微信对骂群对方在微信群里骂人让他负法律责任,准备哪些木马病毒木马和病毒有什么区别手机游戏排行榜20152017年的手游排行榜?深圳公交车路线深圳公交车路线查询雅虎社区雅虎资讯在哪里提交百度抢票浏览器手机百度浏览器抢票版根本就没预约抢票。噱头而已!http与https的区别http和https到底有什么区别啊???idc前线钢铁雄心2修改器二层交换机请教:二层交换机是干什么用的啊?iphone6上市时间iphone6什么时候上市,价格是多少?
韩国虚拟主机 免费域名 smartvps 香港托管 evssl证书 阿里云代金券 嘉洲服务器 qq数据库下载 刀片服务器的优势 已备案删除域名 股票老左 135邮箱 息壤代理 东莞idc 新疆服务器 windows2008 cx域名 ipower 建站论坛 卡巴斯基免费下载 更多