这时,很多有经验的程序员会建议你使用存贮过程来代替运行时生成SQL语句执行查询任务。这确实是一个好的办法。使用存贮查询相对而言有很多好处,而且大多数所带来的效率是明显的。在下面的这个表中,可以看到这两者的一个大概的对比:
存贮查询 VS. 运行时查询
|
存贮查询 |
运行时查询 |
|
执行的更快:因为它已经预先被数据库引擎优化并编译好了。 |
执行的相对慢一些: 因为它时再运行时被解释执行的,不管怎样,解释执行的速度和编译执行是没法比的。 |
|
容易改变: 因为它只要更改在保存数据库中的相应的查询语句就可以了,而不必改动程序中的调用代码。 |
改起来很麻烦: 因为整个应用程序都要因为它的改动作一些相应的改动,以使得程序能够顺利运行。 |
|
灵活性一般:只能通过参数调用。而参数调用也是一个比较麻烦的事。 |
灵活性很高: 因为它可以用参数查询,或者嵌入变量查询等多种查询方式。 |
|
容易维护:因为只有一个查询语句存在于数据库中,使用查询时都是只对对这个查询语句的调用。 |
维护相对难一些: 因为对? 个查询任务都要单独的写出SQL语句来执行查询。 |
|
容易阅读: 因为调用存贮查询的语句都很简短,也不用管那些那些烦人符号。 |
很难阅读: 因为在语句中还包含了很多连接号,变量,而一些其它的字符。 |
由上表可以看出,一般的运行时查询都存在的问题是:1,查询语句难于更改,往往牵一发而动全身。2,效率不高,解释执行和速度的是很难统一的,这在Jet或者SQL Server中更是如此。3,写起来麻烦,看起来不爽。
好的解决办法事把查寻语句从你的代码中移出,而放在数据库中实现。一方面,可以减少你的应用程序的复杂性,另一方面,如果你想改变查询内容,或者发现在查询中有一些问题,只需在数据库中更改就好了,而对于应用程序的代码仍然是适用的。这样要更新的只是数据库,而不是整个应用程序本身,工作量大大减少了。
用MICROSOFT ACCESS 2000创建存贮查询
Microsoft Access提供了最简单的方法来创建存贮查询。Access的一个很好的特性就是能够让你用图形化的方法来创建正确的SQL语句。比起VisData而言,Access要易用的多。
可以按照以下的步骤来在Access 2000中创建存贮查询:
- 运行Access然后打开一个数据库。
- 在菜单中选择插入-$#@62;查询。
- 选择设计视图。
- 添加想要处理的表和字段到设计视图中。
- 如果愿意,可以选者是否根据某个字段进行排序。
- 选择是否显示指定的字段。
- 指定查询准则,比如: (= "John")或者($#@60;52) 等等表达式,对于复杂的准则,可以在准则栏中单击右键,调出表达式生成器来简化表达式的输入。
- 可以通过选择菜单上的视图-$#@62;SQL视图来察看和修改 查询所对应的SQL语句。
- 保存后再执行可以看到查询的结果。
当然,如果你对SQL语言非常熟悉的话,也可以直接选择SQL视图,再在其中输入SQL语句就行了。创建带参数的存贮查询。
在查询中的参数扮演的就像是Visual Basic应用程序中的变量的角色。当在存贮查询中能够使用“变量”后,运行时查询相对于存贮查询而言,几乎就没有任何的优势了,你可以用存贮查询来完成任何的查询工作。创建这种类型的存贮查询也不难,跟着我一步步来吧:
- 在设计视图中创建或者打开一个查询。
- 在菜单上选择查询-$#@62;参数。
- 一个名为参数查询的窗口弹出来,在里面输入参数名称和相应的数据类型。参数名通常用“p”作为前缀,后边再跟上一到三个标志数据类型的前缀,这样就容易阅读和辨认了。比如,一个双精度类型的参数可以取名为pdblMyParameter或者pdMyParameter。只是要注意使用相同的前缀来标志相同类型的前缀,否则读起来就很困难了。






