- 1、本文档共10页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于BS模式的统计图形生成系统设计与实现1
基于B/S模式的统计图形生成系统设计与实现(1)
摘 要 文章介绍了B/S模式的统计图形系统的分析、设计与实现,结合统计数据的结构和特点,给出了简洁、方便、美观的统计图形定制流程和解决方案。能够快捷地进行统计图形定制,达到了良好的效果。该系统能够很好的满足用户的需求。
关键词 B/S;图形系统;统计图形定制
1 系统关键问题及解决方法
随着计算机技术、网络技术、信息技术的迅猛发展和普及,计算机在全球范围内得到了广泛应用。计算机已经成为人们日常生活和工作以及企业追求效率和效益不可缺少的工具。信息、网络和计算机技术作为先进的生产力,充分运用可以大大促进和加快企业的发展,为企业带来巨大的经济效益和社会效益。
目前,许多企业在发展业务过程中可能大量的数据,同时需要通过这些数据来绘制和统计一些图形用于分析企业的现状、预测企业的发展趋势,从而对企业的决策起到辅助作用。我们研制此系统的目的也正是针对目前企业对这类软件的需求。
2 读取不同类型数据库数据表和字段名称
基于设计的灵活性,图形系统需要建立数据字典,因此图形系统要从不同类型的数据库(本系统主要涉及到的数据库有:SQL Server和Oracle)的数据服务器获取待访问数据库的表和字段的名称,对于SQL Server2000而言,获取当前访问的数据库的表和视图名相对来说较为简单,可用语句:
select name,case xtype when u then 表 end as xtype from sysobjects where xtype=u and namedtproperties union select name,case xtype when v then 视图end as xtype from sysobjects where xtype=v and status0。即可获得当前登录的用户能访问的表和视图名。
语句select a.name,b.name, a.colorder from syscolumns a join systypes b on a.xtype=b.xtype where a.id=object_id(“表名称”)and b.namesysname order by a.colorder 就可以得到具体表的字段名称。
但对oracle 9i而言则比较复杂,因为登录用户的表空间下可能已经存在部分表的访问权限,而一些权限比较大的用户又授权给这个用户另一个表空间下部门表的访问权限。所以如果访问Oracle数据库,获取当前登录用户所能够访问的表存在一些问题,通过认真分析,我们采取了以下方法来获取:
select distinct owner, table_name, 表 as LX from user_all_privs where owner = ‘用户名’
Union select‘用户名’as owner, table_name,表 as LX from user_all_tables Union select‘用户名’as owner, view_name as table_name, 视图 as LX From user_views order by table_name,其中的“用户名”指当前登录oracle数据库的帐号。如果上述语句未找到记录,则再用select distinct owner, table_name, 表 as LX from user_all_privs 获取所有的用户表记录。获取表名之后,获取每个表的字段就较为容易了,SQL语句为:select owner, column_name,data_type,column_id from all_tab_columns where table_name =“表名称”and owner = “用户名”order by column_id。
2.1 解决建立数据字典时的效率问题
根据系统的设计原则,系统需要连接远程数据库,并从远程数据库获取所访问数据库的表和字段写入到本地数据库服务器,从而在本地数据库建立远程数据库的数据字典。而这一过程主要的问题就是访问、读取、写入数据库的效率问题。试想,如果远程连接数据库的表和字段数量成千上万的话,那在本地数据库服务器建立数据字典时,如果不处理好语句的效率问题,在本地数据库服务器访问量较大的情况下极有可能造成数据库服务器的瘫痪,造成较大的损失。为此我们进行了多次实验,找到了比较有效地解决方法,就是利用存储过程实现:
关键代码:
@iSJYID int, -- 数据源ID
文档评论(0)