教你快速掌握一些方便易用的SQL语句(5)

作者:36390 来源:赛迪网 时间:2008-11-28 15:21:00 

采用SQL,你就可以很快地找出准确的记录并且打开一个只包含该记录的recordset,如下所示:

Randomize
RNumber = Int(Rnd*499) + 1
 
SQL = "SELECT * FROM Customers WHERE ID = " & RNumber
 
set objRec = ObjConn.Execute(SQL)
Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email")
 
不必写出RNumber 和ID,你只需要检查匹配情况即可。只要你对以上代码的工作满意,你自可按需操作“随机”记录。Recordset没有包含其他内容,因此你很快就能找到你需要的记录这样就大大降低了处理时间。

再谈随机数:

现在你下定决心要榨干Random 函数的最后一滴油,那么你可能会一次取出多条随机记录或者想采用一

定随机范围内的记录。把上面的标准Random 示例扩展一下就可以用SQL应对上面两种情况了。

为了取出几条随机选择的记录并存放在同一recordset内,你可以存储三个随机数,然后查询数据库获得匹配这些数字的记录:

SQL = "SELECT * FROM Customers WHERE ID = " & RNumber &
" OR ID = " & RNumber2 & " OR ID = " & RNumber3
 
假如你想选出10条记录(也许是每次页面装载时的10条链接的列表),你可以用BETWEEN 或者数学等选出第一条记录和适当数量的递增记录。这一操作可以通过好几种方式来完成,但是SELECT语句只显示一种可能(这里的ID 是自动生成的号码):

SQL = "SELECT * FROM Customers WHERE ID BETWEEN
" & RNumber & " AND " & RNumber & "+ 9"
 
注意:以上代码的执行目的不是检查数据库内是否有9条并发记录。

随机读取若干条记录,已测试过。

Access语法:SELECT top 10 * From 表名 ORDER BY Rnd(id)

Sql server:select top n * from 表名 order by newid()

mysql:select * From 表名 Order By rand() Limit n

Access左连接语法(最近开发要用左连接,Access帮助什么都没有,网上没有Access的SQL说明,只有自己

测试, 现在记下以备后查)

语法select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ...

使用SQL语句 用...代替过长的字符串显示

语法:

SQL数据库:select case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename

Access数据库:SELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename;

Conn.Execute说明

Execute方法

该方法用于执行SQL语句。根据SQL语句执行后是否返回记录集,该方法的使用格式分为以下两种:

1.执行SQL查询语句时,将返回查询得到的记录集。用法为:

Set 对象变量名=连接对象.Execute("SQL 查询语言")

Execute方法调用后,会自动创建记录集对象,并将查询结果存储在该记录对象中,通过Set方法,将

记录集赋给指定的对象保存,以后对象变量就代表了该记录集对象。

2.执行SQL的操作性语言时,没有记录集的返回。此时用法为:

连接对象.Execute "SQL 操作性语句" [, RecordAffected][, Option]

·RecordAffected 为可选项,此出可放置一个变量,SQL语句执行后,所生效的记录数会自动保存到

该变量中。通过访问该变量,就可知道SQL语句队多少条记录进行了操作。


·Option 可选项,该参数的取值通常为adCMDText,它用于告诉ADO,应该将Execute方法之后的第一

个字符解释为命令文本。通过指定该参数,可使执行更高效。

·BeginTrans、RollbackTrans、CommitTrans方法

这三个方法是连接对象提供的用于事务处理的方法。BeginTrans用于开始一个事物;RollbackTrans用

于回滚事务;CommitTrans用于提交所有的事务处理结果,即确认事务的处理。

事务处理可以将一组操作视为一个整体,只有全部语句都成功执行后,事务处理才算成功;若其中有

一个语句执行失败,则整个处理就算失败,并恢复到处里前的状态。

BeginTrans和CommitTrans用于标记事务的开始和结束,在这两个之间的语句,就是作为事务处理的语

句。判断事务处理是否成功,可通过连接对象的Error集合来实现,若Error集合的成员个数不为0,则

说明有错误发生,事务处理失败。Error集合中的每一个Error对象,代表一个错误信息。

标签:
0
投稿

猜你喜欢

  • 6个卓越Web设计细节[译]

    2010-03-24 18:34:00
  • 一位网友的DIV CSS编码笔记——XieBiji

    2008-09-12 12:22:00
  • windows7下调试ASP+ACCESS错误“未找到提供程序 该程序可能未正确安装”解决办法

    2009-12-26 18:35:00
  • 五种方法解决 Web2.0设计中的匹配度

    2007-09-22 10:58:00
  • javascript模拟鼠标自动点击链接

    2007-11-03 19:08:00
  • 显示你个性的鼠标指针

    2011-06-14 09:41:41
  • 一个js自动完成功能源码

    2011-06-06 07:42:00
  • asp如何从数据库中删除废旧的电子信箱地址?

    2009-11-15 20:04:00
  • 用Javascript正则表达式验证Email地址

    2009-12-09 15:56:00
  • 分享几个字体设计

    2007-10-10 13:53:00
  • Smush it - 一款图片压缩的Firefox插件,很好,很强大!

    2009-04-12 20:09:00
  • Firefox 下 innerHTML 的一个 BUG

    2008-08-05 18:19:00
  • 一个非常有代表性的javascript简易拖动类

    2009-05-25 12:44:00
  • 如何使用表格来储存数据库的记录?

    2010-05-16 15:14:00
  • 用户体验设计何去何从,交互设计师又何去何从?

    2009-12-28 13:07:00
  • 设计师的底线

    2009-05-06 12:51:00
  • 在数据库‘master’中拒绝CREATE DATABASE权限问题的解决方法

    2011-10-24 19:46:55
  • 5个提高你站点可读性的方法

    2011-01-31 17:48:00
  • 2010怎么就宅了——我们是设计星球的阿凡达

    2010-03-09 13:26:00
  • CSS框架的利与弊

    2007-12-06 12:59:00
  • asp之家 网络编程 m.aspxhome.com