找回密码
 加入我们

QQ登录

只需一步,快速开始

搜索
查看: 5890|回复: 0

[SQL SERVER] 【分享】SQL语句及Recordset记录集对象详解

[复制链接]

1214

主题

352

回帖

11

精华

管理员

菜鸟

积分
93755

贡献奖关注奖人气王精英奖乐于助人勋章

发表于 2009-5-6 12:52:34 | 显示全部楼层 |阅读模式
<p><font face="Verdana">SQL语句及Recordset记录集对象详解</font></p>
<p><font face="Verdana">1. ASP与Access数据库连接: <br/>&lt;%@ language=VBscript%&gt; <br/>&lt;% <br/>dim conn,mdbfile <br/>mdbfile=server.mappath("数据库名称.mdb") <br/>set conn=server.createobject("adodb.connection") <br/>conn.open "driver={microsoft access driver&nbsp; <br/>(*.mdb)};uid=admin;pwd=数据库密码;dbq="&amp;mdbfile <br/>%&gt; <br/>2. ASP与SQL数据库连接: <br/>&lt;%@ language=VBscript%&gt; <br/>&lt;% <br/>dim conn <br/>set conn=server.createobject("ADODB.connection") <br/>con.open "PROVIDER=SQLOLEDB;DATA&nbsp; <br/>SOURCE=SQL服务器名称或IP地址;UID=sa;PWD=数据库密码;DATABASE=数据库名称 <br/>%&gt; </font></p>
<p><font face="Verdana">建立记录集对象: </font></p>
<p><font face="Verdana">set rs=server.createobject("adodb.recordset") <br/>rs.open SQL语句,conn,3,2 </font></p>
<p><font face="Verdana">3. SQL常用命令使用方法: <br/>(1) 数据记录筛选: <br/>sql="select * from 数据表 where 字段名=字段值 order by 字段名 [desc]" <br/>sql="select * from 数据表 where 字段名 like ’%字段值%’ order by 字段名 [desc]" <br/>sql="select top 10 * from 数据表 where 字段名 order by 字段名 [desc]" <br/>sql="select * from 数据表 where 字段名 in (’值1’,’值2’,’值3’)" <br/>sql="select * from 数据表 where 字段名 between 值1 and 值2" </font></p>
<p><font face="Verdana">(2) 更新数据记录: <br/>sql="update 数据表 set 字段名=字段值 where 条件表达式" <br/>sql="update 数据表 set 字段1=值1,字段2=值2 …… 字段n=值n where 条件表达式" </font></p>
<p><font face="Verdana">(3) 删除数据记录: <br/>sql="delete from 数据表 where 条件表达式" <br/>sql="delete from 数据表" (将数据表所有记录删除) </font></p>
<p><font face="Verdana">(4) 添加数据记录: <br/>sql="insert into 数据表 (字段1,字段2,字段3 …) values (值1,值2,值3 …)" <br/>sql="insert into 目标数据表 select * from 源数据表" (把源数据表的记录添加到目标数据表) </font></p>
<p><font face="Verdana">(5) 数据记录统计函数: <br/>AVG(字段名) 得出一个表格栏平均值 <br/>COUNT(*|字段名) 对数据行数的统计或对某一栏有值的数据行数统计 <br/>MAX(字段名) 取得一个表格栏最大的值 <br/>MIN(字段名) 取得一个表格栏最小的值 <br/>SUM(字段名) 把数据栏的值相加 <br/>引用以上函数的方法: <br/>sql="select sum(字段名) as 别名 from 数据表 where 条件表达式" <br/>set rs=conn.excute(sql) <br/>用 rs("别名") 获取统的计值,其它函数运用同上。 </font></p>
<p><font face="Verdana">(5) 数据表的建立和删除: <br/>CREATE TABLE 数据表名称(字段1 类型1(长度),字段2 类型2(长度) …… ) <br/>例:CREATE TABLE tab01(name varchar(50),datetime default now()) </font></p>
<p><font face="Verdana">DROP TABLE 数据表名称 (永久性删除一个数据表) <br/>4. 记录集对象的方法: <br/>rs.movenext 将记录指针从当前的位置向下移一行 <br/>rs.moveprevious 将记录指针从当前的位置向上移一行 <br/>rs.movefirst 将记录指针移到数据表第一行 <br/>rs.movelast 将记录指针移到数据表最后一行 <br/>rs.absoluteposition=N 将记录指针移到数据表第N行 <br/>rs.absolutepage=N 将记录指针移到第N页的第一行 <br/>rs.pagesize=N 设置每页为N条记录 <br/>rs.pagecount 根据 pagesize 的设置返回总页数 <br/>rs.recordcount 返回记录总数 <br/>rs.bof 返回记录指针是否超出数据表首端,true表示是,false为否 <br/>rs.eof 返回记录指针是否超出数据表末端,true表示是,false为否 <br/>rs.delete 删除当前记录,但记录指针不会向下移动 <br/>rs.addnew 添加记录到数据表末端 <br/>rs.update 更新数据表记录 <br/>-------------------------------------------------------------- <br/>Recordset对象方法 <br/>Open方法 <br/>recordset.Open Source,ActiveConnection,CursorType,LockType,Options <br/>Source <br/>Recordset对象可以通过Source属性来连接Command对象。Source参数可以是一个Command对象名称、一段SQL命令、一个指定的数据表名称或是一个Stored&nbsp; <br/>Procedure。假如省略这个参数,系统则采用Recordset对象的Source属性。 </font></p>
<p><font face="Verdana">ActiveConnection <br/>Recordset对象可以通过ActiveConnection属性来连接Connection对象。这里的ActiveConnection可以是一个Connection对象或是一串包含数据库连接信息(ConnectionString)的字符串参数。 </font></p>
<p><font face="Verdana">CursorType <br/>Recordset对象Open方法的CursorType参数表示将以什么样的游标类型启动数据,包括adOpenForwardOnly、adOpenKeyset、adOpenDynamic及adOpenStatic,分述如下: <br/>-------------------------------------------------------------- <br/>常数 常数值 说明 <br/>-------------------------------------------------------------- <br/>adOpenForwardOnly 0 缺省值,启动一个只能向前移动的游标(Forward Only)。 <br/>adOpenKeyset 1 启动一个Keyset类型的游标。 <br/>adOpenDynamic 2 启动一个Dynamic类型的游标。 <br/>adOpenStatic 3 启动一个Static类型的游标。 <br/>-------------------------------------------------------------- <br/>以上几个游标类型将直接影响到Recordset对象所有的属性和方法,以下列表说明他们之间的区别。 <br/>-------------------------------------------------------------- <br/>Recordset属性 adOpenForwardOnly adOpenKeyset adOpenDynamic adOpenStatic <br/>-------------------------------------------------------------- <br/>AbsolutePage 不支持 不支持 可读写 可读写 <br/>AbsolutePosition 不支持 不支持 可读写 可读写 <br/>ActiveConnection 可读写 可读写 可读写 可读写 <br/>BOF 只读 只读 只读 只读 <br/>Bookmark 不支持 不支持 可读写 可读写 <br/>CacheSize 可读写 可读写 可读写 可读写 <br/>CursorLocation 可读写 可读写 可读写 可读写 <br/>CursorType 可读写 可读写 可读写 可读写 <br/>EditMode 只读 只读 只读&nbsp; <br/>只读 <br/>EOF 只读 只读 只读&nbsp; <br/>只读 <br/>Filter 可读写 可读写 可读写 可读写 <br/>LockType 可读写 可读写 可读写 可读写 <br/>MarshalOptions 可读写 可读写 可读写 可读写 <br/>MaxRecords 可读写 可读写 可读写 可读写 <br/>PageCount 不支持 不支持 只读 只读 <br/>PageSize 可读写 可读写 可读写 可读写 <br/>RecordCount 不支持 不支持 只读 只读 <br/>Source 可读写 可读写 可读写 可读写 <br/>State 只读 只读 只读 只读 <br/>Status 只读 只读 只读 只读 <br/>AddNew 支持 支持 支持 支持 <br/>CancelBatch 支持 支持 支持 支持 <br/>CancelUpdate 支持 支持 支持 支持 <br/>Clone 不支持 不支持 <br/>Close 支持 支持 支持 支持 <br/>Delete 支持 支持 支持 支持 <br/>GetRows 支持 支持 支持 支持 <br/>Move 不支持 支持 支持 支持 <br/>MoveFirst 支持 支持 支持 支持 <br/>MoveLast 不支持 支持 支持 支持 <br/>MoveNext 支持 支持 支持 支持 <br/>MovePrevious 不支持 支持 支持 支持 <br/>NextRecordset 支持 支持 支持 支持 <br/>Open 支持 支持 支持 支持 <br/>Requery 支持 支持 支持 支持 <br/>Resync 不支持 不支持 支持 支持 <br/>Supports 支持 支持 支持 支持 <br/>Update 支持 支持 支持 支持 <br/>UpdateBatch 支持 支持 支持 支持 <br/>-------------------------------------------------------------- <br/>其中NextRecordset方法并不适用于Microsoft Access数据库。 </font></p>
<p><font face="Verdana">LockType <br/>Recordset对象Open方法的LockType参数表示要采用的Lock类型,如果忽略这个参数,那么系统会以Recordset对象的LockType属性为预设值。LockType参数包含adLockReadOnly、adLockPrssimistic、adLockOptimistic及adLockBatchOptimistic等,分述如下: <br/>------------------------------------------------------------- <br/>常数 常数值 说明 <br/>-------------------------------------------------------------- <br/>adLockReadOnly 1 缺省值,Recordset对象以只读方式启动,无法运行AddNew、Update及Delete等方法 <br/>adLockPrssimistic 2 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 <br/>adLockOptimistic 3 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 <br/>adLockBatchOptimistic 4 当数据源正在更新时,其他用户必须将CursorLocation属性改为adUdeClientBatch才能对数据进行增、删、改的操作。 <br/>该文章转载自:http://www.deepteach.com/www1/ArticleContent.asp?ID=59&amp;Class=ASP编程</font></p>
[此贴子已经被作者于2009-5-6 12:56:07编辑过]
【VB】QQ群:1422505加的请打上VB好友
【易语言】QQ群:9531809  或 177048
【FOXPRO】QQ群:6580324  或 33659603
【C/C++/VC】QQ群:3777552
【NiceBasic】QQ群:3703755
您需要登录后才可以回帖 登录 | 加入我们

本版积分规则

快速回复 返回顶部 返回列表