专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »数据库 » 调用存储过程:在ACCESS 中调用后台存储过程 »正文

调用存储过程:在ACCESS 中调用后台存储过程

来源: 发布时间:星期一, 2009年2月23日 浏览:0次 评论:0
="t18">  ACCESS是个Client/Server优秀前端开发工具具有易学易用界面友好开发简单和其他数据库接口灵活但是它要对大量数据处理时速度比较慢深圳供电局现有60万用户下面有6个营业所通过64K DDN 和局相连如果有个营业所要对1万用户进行处理要花2~3小时严重影响其他业务开展所以当有大量数据需要处理时不能在Client端处理而必须在Server端处理 但ACCESS和Server端的间多数通过ODBC来连接这样就增加了后台存储过程难度笔者通过在实际工作中长期摸索根据区别业务需要可以用下面 3种思路方法去后台存储过程

  、 Access 向后台提交作业个个作业对应个个存储过程在SQL Server 6.5中通过Task Manager 来建立相应Task; 而在Oracle 8.0中通过Managing Job Queue 来建立相应Job在Access中在job_list表中插入个作业这些作业般每天晚上运行这些作业对应业务般是需要处理非常大量数据而实时性又是较低在我们业务中比较典型例子是每天晚上大量电费计算

   2、 在Server端建立些触发器(Trigger)在Access中激活这些触发器在SQL Server 6.5 和Oracle 8.0中都是通过Create Trigger 来实现在Access中根据区别业务通过插入、修改、删除记录来激活区别触发器在我们业务中个例子是当业务人员修改用户电表读数后激活计算电费触发器能立即重新计算该用户电费这样子既可以和批量计算电费共享同不用在Access端重新开发有可以加快前端响应速度

   3、 以上 2种思路方法只可以说是间接后台存储过程Access还提供种直接思路方法可以用Access 传递查询直接将命令发送到数据库服务器

  建立Access 传递查询步骤如下:

  (1) 在数据库窗口中单击“查询”选项卡然后单击“新建”按钮

  (2) 在“新建查询”对话框中单击“设计视图”选项然后单击“确定”按钮

  (3) 在“显示表”对话框内单击“关闭”按钮

  (4) 在“查询”菜单上指到“SQL 语句条件”然后单击“传递”命令

  (5) 在工具栏上请单击“属性”按钮 以显示查询属性表

  (6) 在查询属性表中请设置“ODBC 连接串”属性来指定要连接数据库信息可以输入连接信息: ”ODBC;DSN=ntserver0;UID=sa;PWD=;DATABASE=BMS”或用“生成器”按钮生成

  (7) 因存储过程不用返回记录所以将“返回记录”属性设置为“否”

  (8) 在“SQL 传递查询”窗口中输入传递查询: exec statisticsStatistics 是SQL Server 数据库个存储过程

  (9) 关闭查询保存查询为:stat_query

  运行传递查询思路方法有:

  (1) 用Microsoft Access宏 OpenQuery

  (2) 用下面事件过程:

Private Sub 统计_Click
Dim dbs As Database, qdf As QueryDef
Dim tmq As Dyna
Dim strSQL As String

Set dbs = CurrentDb
'打开上面建传递查询stat_query
Set qdf = dbs.OpenQueryDef("stat_query ")
qdf.Execute
Set dbs = Nothing
End Sub

  这种思路方法在SQL Server 6.5 中实现完全没问题在Oracle 8.0中不能实现信息为:ORA-00900 invalid SQL statement. 由于这种思路方法不需要个中间表去排队或激活后台存储过程所以它应用面就很广凡是需要处理大量数据业务都可以放到Server端去处理如统计报表

  通过以上 3种思路方法解决了Access对大量数据处理速度慢弱点大大加大了深圳供电局数据处理能力


0

相关文章

读者评论

发表评论

  • 昵称:
  • 内容: