第九章：给留言簿添加在线留言编辑功能（一）

在第六章的第一部分我们已经简单地介绍了一下Command对象所提供的属性和方法以及它们的相应功能。而为了更方便大家读懂如何给留言簿添加在线留言编辑功能的程序，我将先进一步再解释一下Command对象所提供的属性及Recordset对象的Open函数。

Command对象所提供的属性：
ACTIVECONNECTION：ActiveConnection属性可以用来设定该Command对象要依赖哪一个Connection通道来与数据库互相沟通，因此该属性可以直接传入一已与数据库建立链接的Connection对象或是更方便的使用数据库链接字符串取代。
COMMANDTEXT：CommandText属性允许三种类型的数据查询信息，包括一般的SQL语句、数据库表单名称以及子程序名称，而决定是哪一种数据查询信息则是由另一属性CommandType来设定。
COMMANDTIMEOUT：有时候网络的状况不好造成网络响应缓慢，这时候Command对象的Execute方法在执行后会因此而造成服务器端数据库无法正常响应，从而造成停止运行，处于等待状态，遇到这种情况我们可以利用CommandTimeout属性来设定从开始执行数据查询（执行Execute）后允许继续执行的最长时间。CommandTimeout的默认值来30秒。
COMMANDTYPE：可以用CommandType属性来指定数据查询信息的类型见下表：

名称值 | 整数值 | 功能
adcmdtext | 1 | 指定数据查询信息的类型为SQL语句
adcmdtable | 2 | 指定数据查询信息的类型为数据库表名称
adcmdstoredproc | 4 | 指定数据查询信息的类型为子程序名称
adcmdunknown | 8 | 未知的请求信息类型

PREPARED：如果服务器的数据库链接控制（例如ODBC）提供数据查询信息先行编译的功能，那么我们可以把Prepared属性设为true，如此一来可以加快数据库查询的速度。

Recordset对象的Open函数：
Rs.Open 数据表名称或SQL指令，Connection对象，Recordset类型，锁定类型
参数一：若指定成数据表名称，则打开整个数据表，若指定成Select指令，则所建立的Recordset对象是Select指令选取的数据记录的结果。
参数二：传入某一个已打开的数据库的Connection对象。
参数三：是Recordset类型，它含有下表的四种设置值：

Recordset类型的设置值 | 意义
AdOpenForwardOnly(=0) | 只读，且当前数据记录只能向下移动
AdOpenStatic(=3) | 只读，当前数据记录可自由移动
AdOpenKeyset(=1) | 可读写，当前数据记录可自由移动
AdOpenDynamic(=2) | 可读写，当前数据记录可自由移动

AdOpenKeyset和AdOpenDynamic的差别只表现在多人共用数据库时，若以AdOpenKeyset
模式打开数据表，则无法看到其他人新增的数据记录（除非重新启动），如果是以AdOpenDynamic模式打开数据库，则可以看到其他人新增的数据记录。
参数四：是锁定类型，它同样含有四种设置值，见下表：

锁定类型的设置值 | 意义
adLockReadOnly(=1) | 默认值，用来打开只读的数据记录
adLockPessimistic(=2) | 悲观锁定
adLockOptimistic(=3) | 乐观锁定
adLockBatchOptimistic(=4) | 批次乐观锁定