ACCESS 调用后台存储过程的实现方法
来源:程序员人生 发布时间:2013-11-10 23:23:50 阅读次数:2698次
但是
它要对大量数据处理时
速度比较慢
当有大量数据需要处理时
不能在Client端处理
而必须在Server端处理
但ACCESS和Server端之间多数通过ODBC来连接
这样就增加了调用后台存储过程的难度
笔者通过在实际工作中长期的摸索
根据不同的业务需要
可以用下面三种方法去调用后台存储过程
一
Access 向后台提交作业
这一个个作业对应一个个的存储过程
在SQL Server
中
通过Task Manager 来建立相应的Task; 而在Oracle
中
通过Managing Job Queue 来建立相应的Job
在Access中
在job_list表中插入一个作业
这些作业一般每天晚上运行一次
这些作业对应的业务一般是需要处理非常大量数据
而实时性又是较低的
在我们的业务中比较典型的例子是每天晚上大量的电费计算
二
在Server端建立一些触发器(Trigger)
在Access中激活这些触发器
在SQL Server
和Oracle
中
都是通过Create Trigger 来实现
在Access中
根据不同的业务
通过插入
修改
删除记录来激活不同触发器
在我们的业务中一个例子是
当业务人员修改用户的电表读数后
激活计算电费的触发器
能立即重新计算该用户的电费
这样子
既可以和批量计算电费共享同一程序
不用在Access端重新开发
有可以加快前端的响应速度
三
以上二种方法
只可以说是间接调用后台存储过程
Access还提供一种直接调用的方法
可以用Access 传递查询直接将命令发送到数据库服务器
建立Access 传递查询步骤如下
(
) 在数据库窗口中单击
查询
选项卡
然后单击
新建
按钮
(
) 在
新建查询
对话框中单击
设计视图
选项
然后单击
确定
按钮
(
) 在
显示表
对话框内单击
关闭
按钮
(
) 在
查询
菜单上
指到
SQL 语句条件
然后单击
传递
命令
(
) 在工具栏上
请单击
属性
按钮 以显示查询属性表
(
) 在查询属性表中
请设置
ODBC 连接字符串
属性来指定要连接的数据库信息
可以输入连接信息:
ODBC;DSN=ntserver
;UID=sa;PWD=;DATABASE=BMS
或用
生成器
按钮生成
(
) 因存储过程不用返回记录
所以将
返回记录
属性设置为
否
(
) 在
SQL 传递查询
窗口中
输入传递查询: exec statistics
Statistics 是SQL Server 数据库的一个存储过程
(
) 关闭查询
保存查询为
stat_query
运行传递查询的方法有
(
) 用Microsoft Access的宏 OpenQuery
(
) 用下面的事件过程
Private Sub 统计_Click()
Dim dbs As Database
qdf As QueryDef
Dim tmq As Dynaset
Dim strSQL As String
Set dbs = CurrentDb
打开上面建的传递查询stat_query
Set qdf = dbs
OpenQueryDef(
stat_query
)
qdf
Execute
Set dbs = Nothing
End Sub
这种方法在SQL Server
中实现完全没问题
在Oracle
中不能实现
错误信息为
ORA
invalid SQL statement
由于这种方法不需要一个中间的表去排队或激活后台存储过程
所以它的应用面就很广
凡是需要处理大量数据的业务
都可以放到Server端去处理
如统计报表
通过以上三种方法
解决了Access对大量数据处理速度慢的弱点
大大加大了深圳供电局数据处理能力
生活不易,码农辛苦
如果您觉得本网站对您的学习有所帮助,可以手机扫描二维码进行捐赠