步骤1:打开连接(ADO教程)您所在的步骤...连接数据源。可选择创建表示SQL查询命令的对象。可选择在SQL命令中将值作为变量参数。执行命令。如果命令以行返回,将行存储在存储对象中。可选择对数据进行定位、检查、操作和编辑。适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。讨论如果需要一种途径以建立交换数据所必须的条件,那就是“连接”。所连接的数据源可在“连接字符串”中指定,但是对于不同的提供者和数据源而言,连接字符串中指定的参数会有所不同。ADO打开连接的主要方法是使用Connection.Open方法。另外也可在同一个操作中调用快捷方法Recordset.Open打开连接并在该连接上发出命令。以下是VisualBasic中用于两种方法的语法:connection.OpenConnectionString,UserID,Password,OpenOptionsrecordset.OpenSource,ActiveConnection,CursorType,LockType,Options比较这两种方法将有益于加深对ADO方法操作数的总体了解。ADO提供了多种指定操作数的简便方式。例如:Recordset.Open可带有ActiveConnection操作数,即文字字符串,它是代表字符串的变量或代表一个打开连接的Connection对象。对象中的多数方法具有属性,当操作数缺省时属性可以提供参数。使用Connection.Open,可以省略显式ConnectionString操作数并通过将ConnectionString的属性设置为“DSN=pubs;uid=sa;pwd=;database=pubs”隐式地提供信息。与此相反,连接字符串中的关键字操作数uid和pwd可为Connection对象设置UserID和Password参数。本教程使用显式连接字符串调用Connection.Open方法,数据源是“开放式数据库连接”(ODBC)pubs数据库,它作为测试数据库与MicrosoftSQLServer一同发布。(数据源的实际位置,如本地驱动器或远程服务器,在定义“数据源名称”(DSN)时进行指定。)connection.OpenDSN=pubs;uid=sa;pwd=;database=pubs下一页步骤2步骤2:创建命令(ADO教程)您所在的步骤...连接数据源。可选择创建表示SQL查询命令的对象。可选择在SQL命令中将值指定为变量参数。执行命令,如果命令按行返回,将行存储在存储对象中。可选择对数据进行定位、检查、操作和编辑。适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。讨论查询命令要求数据源返回含有所要求信息行的Recordset对象。命令通常使用SQL编写。1.如上所述,“命令字符串”之类的操作数可表示为:代表字符串的文字串或变量。本教程可使用命令字符串“SELECT*fromauthors”查询pubs数据库中的authors表中的所有信息。代表命令字符串的对象。在这种情况下,Command对象的CommandText属性的值设置为命令字符串。Commandcmd=NewADODB.Command;cmd.CommandText=SELECT*fromauthors2.使用占位符‘?’指定参数化命令字符串。尽管SQL字符串的内容是固定的,您也可以创建“参数化”命令,这样在命令执行时占位符‘?’子字符串将被参数所替代。使用Prepared属性可以优化参数化命令的性能,参数化命令可以重复使用,每次只需要改变参数。例如,执行以下命令字符串将对所有姓“Ringer”的作者进行查询:Commandcmd=NewADODB.Commandcmd.CommandText=SELECT*fromauthorsWHEREau_lname=?3.指定Parameter对象并将其追加到Parameter集合。每个占位符‘?’将由Command对象Parameter集合中相应的Parameter对象值替代。可将“Ringer”作为值来创建Parameter对象,然后将其追加到Parameter集合:Parameterprm=NewADODB.Parameterprm.Name=au_lnameprm.Type=adVarCharprm.Direction=adInputprm.Size=40prm.Value=Ringercmd.Parameters.Appendprm4.使用CreateParameter方法指定并追加Parameter对象。ADO现在可提供简易灵活的方法在单个步骤中创建Parameter对象并将其追加到Parameter集合。cmd.Parameters.Appendcmd.CreateParameter_au_lname,adVarChar,adInput,40,Ringer本教程将不使用参数化命令,因为需要使用Command.Execute方法以参数替代占位符‘?’,但该方法不允许指定Recordset游标类型和锁定选项。为此将使用如下代码:Commandcmd=NewADODB.Command;cmd.CommandText=SELECT*fromauthors下面列出表authors的纲要以供查阅。列名数据类型(长度)置空au_idID(11)noau_lnamevarchar(40)noau_fnamevarchar(20)nophonechar(12)noaddressvarchar(40)yescityvarchar(20)yesstatechar(2)yeszipchar(5)yescontractbitno下一页步骤3步骤3:执行命令(ADO教程)您所在的步骤...连接数据源。可选择创建表示SQL查询命令的对象。可选择在SQL命令中将值指定为变量参数。执行命令,如果命令按行返回,将行存储在存储对象中。可选择对数据进行定位、检查、操作和编辑。适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务中嵌入更新数据。在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。讨论返回Recordset的方法有三种:Connection.Execute、Command.Execute以及Recordset.Open。以下是它们的VisualBasic语法:connection.Execute(CommandText,RecordsAffected,Options)command.Execute(RecordsAffected,Parameters,Options)recordset.OpenSource,ActiveConnection,CursorType,LockType,Options通过优化这些方法可发挥各自的优势。必须在发出命令之前打开连接,每种发出命令的方法代表不同的连接:Connection.Execute方法使用由Connection对象自身表现的连接。Command.Execute方法使用在其ActiveConnection属性中设置的Connection对象。Recordset.Open方法所指定的或者是连接字符串,或者是Connection对象操作数;否则使用在其ActiveConnection属性中设置的Connection对象。另一个不同点是命令在三种方法中的指定方式:在Connection.Execute方法中,命令是字符串。在Command.Execute方法中,命令是不可见的,它在Command.Command—Text属性中指定。另外,此命令可含有参数符号('?'),它可以由“参数”VARIANT数组参数中的相应参数替代。在Recordset.Open方法中,命令是Source参数,它可以是字符串或Command对象。每种方法可根据性能需要替换使用:Execute方法针对(但不局限)于执行不返回数据的命令。两种Execute方法都可返回快速只读、仅向前Recordset对象。Command.Execute方法允许使用可高效重复利用的参数化命令。另一方面,Open方法允许指定CursorType(用于访问数据的策略及对象)和LockType(指定其他用户的isolation级别以及游标是否在immediate或batchmodes中支持更新)。请深入了解这些选项,它们在很大程度上体现了Recordset的功能。本教程使用动态游标对Recordset的所有变更进行批处理,请使用以下方法:Recordsetrs=NewADODB.Recordsetrs.Opencmd,conn,adOpenDymanic,adLockBatchOptimistic下一页步骤4步骤4:操作数据(ADO教程)您所在的步骤...连接数据源。可选择创建表示SQL查询命令的对象。可选择在SQL命令中将值指定为变量参数。执行命令,如果命令按行返回,将行存储在存储对象中。可选择对数据进行定位、检查、操作和编辑。适当情况下,可以使用存储对象中的变更对数据源进行更新。可选择在事务处理中嵌入更新数据。在使用事务之后,可以接受或拒绝在事务中所做的更改。结束事务。讨论大量Recordset对象方法和属性可用于对Recordset数据行进行检查、定位以及操作。Recordset可看作行数组,在任意给定时间可进行测试和操作的行为“当前行”,在Recordset中的位置为“当前行位置”。每次移动到另一行时,该行将成为新的当前行。有多种方法可在Recordset中显式移动或“定位”(Move方法)。一些方法(Find方法)在其操作的附加效果中也能够做到。此外,设置某个属性(Bookmark属性)同样可以更改行的位置。Filter属性用于控制可访问的行(即这些行是“可见的”)。Sort属性用于控制所定位的Recordset行中的顺序。Recordset有一个Fields集合,它是在行中代表每个字段或列的Field集,可从Field对象的Value属性中为字段赋值或检索数据。作为选项,可访问大量字段数据(GetRows和Update方法)。在本教程中,您将要:将假设区号为“415”、局号以“5”开头的电话号码区号改为“777”。设置au_lnameField对象的Optimize属性以提高存储和筛选性能。按作者的姓将Recordset排序。筛选Recordset,使作者电话区号为“415”、局号为“5”的行成为仅可访问(即可见)的行。使用Move方法从头至尾对经过排序和筛选的Recordset定位。当RecordsetEOF属性表明已经到达最后一行时停止。在Recordset中移动时,显示作者的姓和名以及原始电话号码,然后将phone字段中的区号改为“777”。(phone字段中的电话号码属于窗体“aaaxxx-yyyy”,其中aaa为区号,xxx为局号。)rs!au_lname.Optimize=TRUErs.Sort=au_lnameASCENDINGrs.Filter=phoneLIKE'4155*'rs.MoveFirstDoWhileNotrs.EOFDebug.PrintName:&rs!au_fname&rs!au_lname&_Phone:rs!phone&vbCrrs!phone=777&Mid(rs!phone,5,11)rs.MoveNextLoop下一页步骤5步骤5:更新数据(ADO教程)您所在的步骤...连接数据源。可选择创建表示SQL查询命令的对象。可选择在SQL命令中将值指定为变量参数。执行命令,如果命令按行返回,将行存储在存储对象中。可选择对数据进行定位、检查、操作和编辑。适当情况