发新话题
打印

在ASP中使用SQL语句之5:开始执行

在ASP中使用SQL语句之5:开始执行


在学会了SELECT语句的构造和用途之后你就该学习如何使用它了。在你所掌握的数据库工具下,这可能意味着你得按下某个写着“执行”字样的按钮。在ASP网页上,可以立即执行SQL语句也可以当作存储过程调用。
! \- ~; Z1 A( x7 s: S& E1 Y( q" y; Q1 w6 E4 |, ~
  8 E. |' P" D8 F8 a

2 n5 V6 y4 \( G- G0 o一旦创建了SQL 语句,你还得设法访问其查询结果。显然,这里的关键就是ASP recordset。在使用非SQL的recordset时,创建recordset的代码通常如下所示:
6 s5 U1 }, q  z6 z0 `, U  {Dim objRec
$ O- d" S. f% d% wSet objRec = Server.CreateObject ("ADODB.Recordset")
0 t. G2 ]5 j. U* Y7 m) W, N5 sobjRec.Open "customers", objConn, 0, 1, 2  
# h7 G* F. l1 a0 M1 I- L, p
, C7 @) @6 l) p如果你对ASP比较熟悉以上的代码对你可就不陌生了,你应该知道“customers”表示你打开数据库内一个数据表的名字。  / K  B# z9 F4 {  W2 |
& b2 E1 R7 l7 c: Y6 I( l
打开recordset
! B! u& g" d) `- Y  W& A* k+ P& g, A* S为了充分利用你更为熟悉的SQL技能,你需要调整常规ASP网页上最常采用的recordset:2 p: u' P" I7 B4 U
Dim objRec
3 A$ \  T: H. F& Z: H- a2 x& z- y$ aSet objRec = Server.CreateObject ("ADODB.Recordset")$ |9 x& `/ q+ _% T9 H
objRec.Open SQL, objConn, 0, 1, 2  
: f4 ]2 l* l; }* ~( R$ @2 P5 U7 l/ a, k8 T
这里唯一的修改就是在objRec.Open,之后用包含SQL语句的变量代替了要查询的数据表的名称。  / a* Z$ ?' W# C2 l% \

* ]" E/ N. V' H; }3 [; ]这种方法的优点之一是你可以指定游标类型(如以上0, 1 ,2 所示)。  ( u; V7 X% F; y+ c

6 y5 U) f% w* l执行SQL1 l3 l% j( Z/ U) o3 E& w2 @
你可以用紧凑的一行代码执行SQL语句来创建recordset。以下是语法:( C; G+ V/ j" g
Dim objRec8 a5 E8 }. ?8 [' Z- |
set objRec = objConn.Execute(SQL)  3 q" G& o4 a  `, L2 g

% [6 F' I2 R( W0 h  F在上例中,你所看到的SQL是你存放自己SQL SELECT 语句的变量。该代码行“运行”SQL语句(或者说对数据库进行查询),选取数据并把数据存放在recordset 内,在上例中就是变量objRec。这种方法的主要缺点是你不能选择自己想采用的游标类型。相反,recordset总是用前向游标打开。  
5 h2 f  q( n+ q' {9 s, @# x
2 h6 ]; Z  @5 @因为游标的缘故,你或许打算熟悉两种创建recordset的方法。直接执行查询节省了键入字符所消耗的时间,但那样的话你就得采用默认的游标了,这样有可能遭遇经常不能正常运行的毛病。不管你具体采用哪种办法,两者之间的最大的差别也不外乎代码精练与否。在不考虑你取得什么字段、你的标准是什么的前提下,也不管你如何存储数据,采用SQL式的recordset 在体积上会比ASP上打开的标准recordset 要小得多,更别提操作起来的简易性了。毕竟,通过过滤数据,你消除了耗费时间的if-then 测试和可能用到的循环。  / f8 u5 m, w9 Z! ]% o9 N

+ o& |/ e  G( x7 R0 @( ?编写测试用SQL7 W0 U: ]8 T1 H4 k8 ]
这里有个技巧,许多专业ASP程序员习惯在测试网页的时候“编写”自己的SQL语句。这样做可以帮助你调试代码,因为你可以从中看到传递给服务器执行的字符串。而你要做的无非是增加Response.WriteyourVariable 在屏幕上显示有关信息。在你把和SQL有关的问题提交给ASP讨论组的时候你就应该附上这些信息。



点击图标进入精品网摘收藏 欢迎大家加入网络收藏夹

TOP

发新话题