`
izuoyan
  • 浏览: 9222764 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

在ACCESS 中调用后台存储过程

阅读更多

在ACCESS 中调用后台存储过程

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

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

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

  三、 以上二种方法,只可以说是间接调用后台存储过程,Access还提供一种直接调用的方法,可以用Access 传递查询直接将命令发送到数据库服务器。

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

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

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

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

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

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

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

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

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

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

  运行传递查询的方法有:

  (1) 用Microsoft Access的宏 OpenQuery。

  (2) 用下面的事件过程:


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

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

注:本文转自http://publish.it168.com/2005/1023/20051023004301.shtml

分享到:
评论

相关推荐

    ACCESS 调用后台存储过程的实现方法

    本文将介绍三种在ACCESS中调用后台存储过程的方法。 首先,一种方法是让ACCESS向后台提交作业。在SQL Server 6.5中,可以使用Task Manager创建任务;而在Oracle 8.0中,则通过Managing Job Queue创建作业。在ACCESS...

    关于sqlhelper调用存储过程和获取参数返回值

    `Default.aspx`和`Default.aspx.cs`是ASP.NET网页及其后台代码,它们可能展示了如何在实际Web应用中使用SqlHelper调用存储过程。 总之,这篇博文可能会详细解释如何使用自定义SqlHelper类来高效、安全地调用存储...

    VB调用Access.pdf

    1. **掌握VB调用Access数据库的方法:** 学习者将通过实践了解如何在VB环境中建立与Access数据库的连接,并实现数据查询等功能。 2. **为MIS应用程序编写打下基础:** 通过本次实验的学习,可以为未来开发更复杂的...

    新闻发布系统后台(asp+access)

    在此系统中,Access数据库被用作数据存储,它提供了基本的数据管理功能,适合小型网站或者初学者使用。 这个系统的亮点在于它的简便性。"爬爬斯特新闻发布系统"是一个已经开发完成的解决方案,附带有演示,用户可以...

    asp+access+echarts+iis

    在本项目中,ASP被用来处理与数据库的交互,比如读取Access数据库中的数据,根据需求进行处理,并传递给前端页面。 Access数据库是一个轻量级的关系型数据库管理系统,适合小型项目或个人使用。在这里,它作为数据...

    MFC中将Excel表中数据取出存储到Access数据库中

    在IT领域,尤其是在Windows应用程序开发中,MFC(Microsoft Foundation Classes)是一个常用库,它为C++程序员提供了构建Windows应用程序的框架。本话题主要涉及如何使用MFC来操作Excel文件并将其数据存入Access...

    Oracle分页+.cs代码+存储过程+Aspnetpager分页控件

    在这个存储过程中,`page_num`是当前页码,`page_size`是每页显示的记录数。外层查询用于过滤实际需要返回的行,内层查询加上`ORDER BY`语句确保了分页的顺序一致性。 接下来,我们关注`.cs`代码部分,这部分通常...

    asp.net+access简单的后台新闻发布

    在ASP.NET中,BLL通常调用DAL来完成数据操作。 5. **接口定义层(IDAL)**:IDAL包含对DAL的接口定义,这是为了实现解耦,使得BLL可以与任何实现这些接口的数据访问层进行交互,不仅限于Access数据库。 6. **DAL...

    jsp 的论坛 access数据库

    在本案例中,后台管理功能可能通过一个专门的管理员界面实现,这个界面与JSP页面交互,调用后台服务进行数据操作。 4. **数据库配置文件**:为了使论坛系统能连接到Access数据库,需要有一个配置文件(如`db....

    VB SQL ACCESS 数据库 实例源码

    在VB中,可以调用存储过程来执行复杂的数据库操作,提高性能和代码可维护性。 9. **安全性与权限**:VB和SQL ACCESS都提供了安全措施,如设置用户权限、加密数据库等,以保护敏感数据。 10. **优化性能**:在大量...

    ASP+ACCESS 图片上传程序

    在这个程序中,Access数据库(可能以mdb文件形式存在)用于存储图片信息,如图片ID、上传时间、文件名、上传者等。bd-conn.asp文件很可能包含了连接和操作数据库的代码,例如建立数据库连接、执行SQL查询和更新操作...

    access群发邮件程序

    在描述中提到的"用access窗体轻松实现群发邮件程序",意味着开发者可能创建了一个Access窗体界面,用户通过这个友好的界面输入或选择收件人信息,然后后台的VBA代码负责实际的邮件发送。窗体通常包括收件人字段、...

    C# 定时更新程序(支持Access数据库更新)

    支持Access数据库更新则意味着程序能够读取、写入或修改存储在Access数据库中的数据。Access数据库是一种关系型数据库管理系统,使用Jet引擎处理数据,常用于小型项目和个人数据库应用。在C#中,可以使用ADO.NET...

    仿Google自动完成Access版.rar

    在此程序中,Access作为后台数据库,存储了所有可能的搜索关键字或条目。当用户输入时,Access通过SQL查询语句找出与输入匹配的记录,并将这些记录以适当格式返回给Ajax调用。 **自动完成实现原理:** 1. **用户...

    access+c#小抽奖程序

    在这样的系统中,C#主要负责用户界面、逻辑处理和与数据库的交互,而Access则作为数据存储和管理的后台工具。C#是微软开发的一种面向对象的编程语言,具有丰富的类库和强大的功能,特别适合开发桌面应用。 【描述】...

    Oracle和Access表之间的导入和导出

    - **使用PL/SQL**:在Oracle环境中编写PL/SQL程序,调用DBMS_LOB或UTL_FILE包来读取Access文件,再将数据插入Oracle表。 - **ODBC或JDBC**:同样可以配置Access的ODBC数据源,或者使用Java的JDBC驱动,编写程序...

    学生信息管理系统C#+ACCESS

    例如,添加学生信息时,用户在文本框输入数据,点击“保存”按钮,后台的事件处理器会调用数据库操作代码,将数据保存到Access数据库中。 此外,为了提供更友好的用户体验,系统还可能包含查询功能。通过设计查询...

    c#接口调用案例

    在ASP.NET框架中,接口调用通常与Web应用程序的业务逻辑层(Business Logic Layer, BLL)和数据访问层(Data Access Layer, DAL)有关。在给定的案例中,`test.aspx`页面可能是用户界面,它通过BLL调用实现了接口的...

    c#数据库后台连接层

    - 存储过程是在数据库服务器上预编译的SQL语句集合,调用存储过程能提高执行效率,减少网络通信量。项目中以存储过程方式编写数据库操作,降低了代码复杂性,提高了安全性。 3. **SqlHelper类**: - "SqlHelper...

    asp+access 办公自动化管理系统

    在ASP+Access的组合中,Access作为后台数据库,存储并管理系统的数据。它的优点在于对于小型到中型的应用场景,提供了足够的性能和便捷的数据管理功能。开发者可以使用SQL语句来操作数据库,包括查询、插入、更新和...

Global site tag (gtag.js) - Google Analytics