Access911.net   |   a9BBS   |   OTaA System  
  搜索文章:  
Access911欢迎您光临  
   主页      上传      繁體版       论坛     
设为首页  |  加入收藏   
  
你现在的位置:文章索引 -> 文章分类 -> 查询  
 首页|  近日更新|  下载  |  文章索引  |  搜索|  术语|  承接工程|  
 
系统正在加载内容,请耐心等待...
 
 查询
 窗体
 报表
 
 
 VBA
 函数
 ADO/DAO/ADO.NET
 API
 ADP
 安全
 发布
 OA
 ASP/ASP.NET
 其他语言
 控件
 DELPHI
 C#/.Net
 本站
 其他
 小例程
 常用软件
 参考文档
 业主作品
 网友大作
 
 
友情链接
 access911.net
 
访问人次
 1702342
 
站长 E-Mail
 net911@sina.com
 access911@gmail.com
 
RSS 订阅

显示附加信息 >>>

新手来看:什么是存储过程?ACCESS中是否存在存储过程或者视图?

作者:cg1  摘自:access911.net  :cg1  更新日期:2003-11-9  浏览人次:

 

问题:

ACCESS 中是否存在存储过程或者视图?

 


回答:


先来看什么是存储过程,如果你知道什么是存储过程的定义,可以跳过蓝色部分看下面
存储过程
在使用 Microsoft® SQL Server™ 2000 创建应用程序时,Transact-SQL 编程语言是应用程序和 SQL Server 数据库之间的主要编程接口。使用 Transact-SQL 程序时,可用两种方法存储和执行程序。可以在本地存储程序,并创建向 SQL Server 发送命令并处理结果的应用程序;也可以将程序在 SQL Server 中存储为存储过程,并创建执行存储过程并处理结果的应用程序。 

SQL Server 中的存储过程与其它编程语言中的过程类似,原因是存储过程可以: 

接受输入参数并以输出参数的形式将多个值返回至调用过程或批处理。


包含执行数据库操作(包括调用其它过程)的编程语句。 


向调用过程或批处理返回状态值,以表明成功或失败(以及失败原因)。 
可使用 Transact-SQL EXECUTE 语句运行存储过程。存储过程与函数不同,因为存储过程不返回取代其名称的值,也不能直接用在表达式中。

使用 SQL Server 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优势有: 

允许模块化程序设计。 
只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。

允许更快执行。 
如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。

减少网络流量。 
一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

可作为安全机制使用。 
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限。

SQL Server 存储过程是用 Transact-SQL 语句 CREATE PROCEDURE 创建的,并可用 ALTER PROCEDURE 语句进行修改。存储过程定义包含两个主要组成部分:过程名称及其参数的说明,以及过程的主体(其中包含执行过程操作的 Transact-SQL 语句)。

Access 的 MDB / MDE 中存在类似存储过程得概念(建立时也可以使用 DDL 语句的 create procedure 语句建立),但是叫参数查询,并且一个参数查询只支持一条 JET SQL 语句,因而 JET SQL 不存在程序流控制语句,所有的程序流控制都交由 VBA 控制。

详细内容请参考:

《ado构建参数一例》
http://access911.net/index.asp?board=4&recordid=71FAB51E12DC

《如何构建参数查询?》
http://access911.net/index.asp?board=4&recordid=72FAB21E15DC

在Access的MDB中可以运行JET SQL 的 DDL 语句: create procedure Name as .... 来创建参数查询(存储过程)或者用 create view name as .... 来创建查询(视图)
请注意:再次重申,在 ACCESS 的“查询”标签中直接建立一个查询,并将Create procedure ... 语句或者 create view... 语句输入进去是会产生错误的,只有在“模块”标签中建立一个模块,并输入
sub 过程名()
    dim strsql as string
    strsql="create view ..."
    currentproject.connection.execute strsql
end sub

按 F5 才能运行。这是因为 JET SQL 的多数 DDL 语句需要通过 ADODB.CONNECTION 这个对象的EXECUTE 方法来执行的。

如何运行 JET SQL 语句请参考:
《如何运行一段 jet sql 代码》
http://access911.net/down/eg/swf/runsql.swf

Access 的 ADP/ADE (数据项目)中本来就是调用 MS SQLSERVER 作为后端,因此在 ADP 中说的存储过程与 SQL SERVER 中的存储过程是一个概念。

Access 的 MDB / MDE 中存在类似视图得概念(建立时也可以使用 DDL 语句的 create VIEW 语句建立),但是叫选择查询,并且一个选择查询只支持一条 JET SQL 语句,因而 JET SQL 不存在程序流控制语句,所有的程序流控制都交由 VBA 控制。

Access 的 ADP/ADE (数据项目)中本来就是调用 MS SQLSERVER 作为后端,因此在 ADP 中说的视图与 SQL SERVER 中的视图是一个概念。

 

本站文章旨在为该问题提供解决思路及关键性代码,并不能完成应该由网友自己完成的所有工作,请网友在仔细看文章并理解思路的基础上举一反三、灵活运用。

access911.net 原创文章,作者本人对文章保留一切权利。
如需转载必须征得作者同意并注明本站链接

 

 
相关文章
     没有手动相关文章
 
评论
     查看或发表更多的评论,请单击这里。
 
 
 
 
 
   
  Access911.net   |   a9BBS   |   OTaA System   |
建站日期:2000年4月2日  |  设计施工:陈格 ( access911 & cg1 )
 Copyright © 2000 - 2003 COMET, 陈格 保留所有权利