set rstemp=nothing
conntemp.close
set conntemp=nothingend sub
完成了 SUB 的定义过程,在下面几个 ASP 程序中我们只要加入想要使用的 SQL 查询语句,并调用该过程就可以非常方便的得到查询结果。将以下四段代码分别保存为 asp11a.asp、asp11b.asp、asp11c.asp、asp11d.asp 四个 .asp 文件。
< HEAD>< TITLE>asp11a.asp< /TITLE>< /HEAD>
< HTML>< body bgcolor="#FFFFFF">
< %
call query2table("select * from publishers where ncom like \'A%%\'")
\' 将表 publishers 中所有姓名中有字母 A 的记录查询出来
< !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>
< HEAD>< TITLE>asp11b.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
< %
call query2table("select * from titles where Year_Published >= 1998")
\' 将表 titles 中所有发表年份大于或等于 1998 年的记录查询出来
< !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>
< HEAD>< TITLE>asp11c.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
< %
call query2table("select * from publishers where amount>10000 and sex=\'male\'")
\' 将表 publishers 中所有数量大于 10000 且xìng别为男的记录查询出来
< !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>
< HEAD>< TITLE>asp11d.asp< /TITLE>< /HEAD>< HTML>< body bgcolor="#FFFFFF">
< %
call query2table("select * from publishers where state< >\'NY\'")
\'将表 publishers 中所有所在城市不为纽约的记录查询出来。
< !--#include virtual="/asptest/subdbtable.inc"-->< /BODY>< /HTML>
利用 subdbtable.inc 文件中的所定义的过程 query2table,你就可以非常迅速地对数据库进行查询,你所要做的只是将“conntemp.open "DSN=Student;uid=student;pwd=aspmagic"”中的数据库名称、用户身份和密码稍加改动,并在调用 query2table 时输入想要使用的 SQL 查询语句即可。是不是很简单 ? 这就是 ASP 和 SQL 的魅力所在 !!!
今天,我们虽然用了一整篇的篇幅只学习了一个 SQL 指令,但请你相信你所获得远不同于一个 DOS 指令,SELECT 指令使得你可以非常容易地对数据库进行查询,或许在这之前你对数据库查询还一无所知,但是通过本篇的学习,你其实已经会使用 ASP 进行常用的数据库查询了,是不是很激动 ? 在下一篇中,作者将继续给大家介绍 SQL 的其它几个基本指令。
ASP基础教程:数据库查询语言(2)
在本篇的开头,我要感谢一些朋友来信给我指出了前几篇文章中的错误。不知大家是否记得在第八篇中我举了一个简单的利用 Application 制作的页面访问计数器?有位朋友来信问我,为何当他改变计数器起始变量 NumVisits 的值后对最后的记数结果没有任何作用?起初我也大惑不解,让我们来回忆一下这段源程序,如下:
< %
Dim NumVisits
NumVisits=0
Application.Lock
Application("NumVisits") = Application("NumVisits") + 1
Application.Unlock
欢迎光临本网页,你是本页的第 < %= Application("NumVisits") 位访客 !
在这段程序中,如果你试图通过改变变量 NumVisits 的值来改变记数器结果,是绝对办不到的。因为用变量的值去改变 Application 的值是不可以的,这两者是不相关的。所以这里对变量的定义和赋值都是多余的。那么我们究竟应该如何来给 Application("NumVisits") 定义一个初始值呢?请看以下修正后程序:
< %
If Application("NumVisits")< 999 then
Application("NumVisits")=999
End If
Application.Lock
Application("NumVisits")=Application("NumVisits")+1
Application.Unlock
欢迎光临本网页,你是本页的第 < %= Application("NumVisits") 位访客 !
这里的 999 就是你要设定的计数器初始值,如此一来问题就迎刃而解了。我非常感谢这位姓康的朋友给我指出了这个错误,虽然这只是一个很小的漏洞,但我们在共同学程序写程序的过程中非常需要这种严谨细致的作风,希望今后朋友们们一旦发现文中的错误即刻来信告知,我也能及时纠正,谢谢。
SQL 语言可以分为两大部分:数据定义语言和数据cāo纵语言,继上一篇我们学习了数据cāo纵语言中的 Select 语句后,今天作者要继续给大家简要介绍其余的 SQL 语句。
SQL 是一种完备的数据处理语言,不仅用于数据库查询,而且用于数据库中的数据修改和更新,与支持 SQL 查询的 Select 语句的复杂xìng相比较,更改数据库内容的 SQL 语句就格外简单。然而对于一个 DBMS 来说,数据更新所造成的风险大大超出了数据查询。数据库管理系统必须在更改期内保护所存储的数据的一致xìng,确保有效的数据进入数据库,数据库必须保持一致xìng, DBMS 还必须协调多用户的并行更新,以确保用户和他们的更改不至于影响其他用户的作业。
用于修改数据库内容的 SQL 语句主要有以下三个:
1、 Insert,向一个表中加入新的数据行
2、 Delete,从一个表中删除数据行
3、 Update,更改数据库中已经存在的数据
首先我们来看看 Insert 的用法:
标准语法:
INSERT INTO table_ncom
(col1, col2...)
VALUES(value1, value2...)
下例要将书生作为一个新的销售员加入表 Salesreps 中
Insert Into
Salesreps (ncom,num,sales,hire_date,inccom)
values (\\\'shusheng\\\',9,10000,\\\'23-Feb-99\\\',2000)
在此语句中,列的名称列在括号中以逗号隔开,接下去是 Value 短语和括号中同样以逗号隔开的每列数据,应该注意的是数据和列名称的顺序是相同的,而且若是字符串型则以单引号隔开。从概念上来讲, Insert 语句建立的一个与
松语文学免费小说阅读_www.16sy.com