<aDodc 图17-2ADO数据控件 Visual basic6.0中,可以使用ADO数据控件实现下面一些功能 连接一个本地数据库或远程数据库。 打开一个指定的数据库表,或定义一个基于结构化查询语言(SQL)的查询、存储 过程或者是该数据库中表的视图的记录集合。 将数据字段的数值传递给数据绑定挫件,可以在这些控件中显示或更改这些数值。 添加新记录,或根据对显示在绑定的控件中的数据的仔何更改来更新一个数据库。 1.ADO数据控件的主要属性 Caption属性:标题(常用来显示当前记录所处的位置) UserName属性:用来指定用户的名称,当数据库受密码保护时,需要指定该 属性。该属性可以在 Connectionstring中指定。如果同时提供 个 Connectionstring属性以及一个 UserName属性,则 Connection string中的值将 覆盖 UserName属性的值。 Connection String属性:返回或设置用来建立到数据源的连接字符串。该属性通过 传递含一系列由分号分隔的“参数=值”语句的详细连接字符串指定ADO数据控件 的数据源,在连接字符串中包含进行一个连接所需的所有设置值,其传递的参数与 驱动程序相关,如ODBC 驱动程序允许该字符串包含驱动程序、提供者、缺 省的数据库、服务器、用户名称以及密 码等。 ConnectionString属性参数参见表17-1
图17-2 ADO数据控件 Visual Basic 6.0中,可以使用ADO数据控件实现下面一些功能: 连接一个本地数据库或远程数据库。 打开一个指定的数据库表,或定义—个基于结构化查询语言(SQL)的查询、存储 过程或者是该数据库中表的视图的记录集合。 将数据字段的数值传递给数据绑定控件,可以在这些控件中显示或更改这些数值。 添加新记录,或根据对显示在绑定的控件中的数据的仔何更改来更新一个数据库。 1.ADO数据控件的主要属性 Caption属性:标题(常用来显示当前记录所处的位置)。 UserName属性:用来指定用户的名称,当数据库受密码保护时,需要指定该 属 性 。 该属性可以在 ConnectionString 中指定 。 如果同时提供了一个 ConnectionString属性以及—个 UserName属性,则ConnectionString中的值将 覆盖UserName属性的值。 ConnectionString属性:返回或设置用来建立到数据源的连接字符串。该属性通过 传递含一系列由分号分隔的“参数=值”语句的详细连接字符串指定ADO数据控件 的数据源,在连接字符串中包含进行一个连接所需的所有设置值,其传递的参数与 驱动程序相关,如ODBC 驱动程序允许该字符串包含驱动程序、提供者、缺 省的数据库、服务器、用户名称以及密 码等。ConnectionString属性参数参见表17-1
参数 描 Provider 指定数据源的名称。 File name 指定基于数据源的文件名称。 Remote provider指定在打开一个客户端连接时使用的数据源 名称。 Remote server 指定打开数据连接时使用的服务器的路径和 名称。 表17-1 Connection String属性的参数
参 数 描 述 Provider 指定数据源的名称。 File Name 指定基于数据源的文件名称。 Remote Provider 指定在打开一个客户端连接时使用的数据源 名称。 Remote Server 指定打开数据连接时使用的服务器的路径和 名称。 表17-1 ConnectionString属性的参数
Password属性:在访问一个受保护的数据库时需要设置 Password属性。与 Provider属性和 UserName属性类似,如果在 Connectionstring属性中指定了密码,则将覆盖在这个属性中 指定的值。 RecordSource属性:返回或设置AD○挫件的记录源,用于决定从数据库检索的信息。其设 置值可以是数据库表名,也可以是有效的SQL语句,如 SELECT*FROM学生WHRE(性 别=男") Mode属性∶决定用记录集进行的操作。 1 CommandType属性∶用以确定 Source属性是SQL语句、一个表名、一个存储过程,还是 个未知的类型。 Cursonlocation属性:指定光标的位置,是位于客户机上还是位于服务器上 ConnectionTimeout属性∶设置等待建立一个连接的时间,以秒为单位。如果连接超时,则 返回一个错误。 MaxRecord属性决定光标的大小。如何决定这个属性的值取决于所检索的记录的大小, 以及计算机可用资源(内存)的多少。 MaxRecords属性不能太大。 Cashsize属性:指定从光标中可以检索的记录数。若将 Cursor location属性设为客户端, 则这个属性只能设为一个较小的数目(可能为1).不会有任何不利的影响;若光标的位置位 于服务器,则可以对这个数进行调整,将其设为可以查看的行数。 2.ADO数据控件的主要方法 Refresh方法:用于更新集合中的对象以便反映来自指定提供者的对象情况。在调用 Refresh方法之前,应该将 Commandy对象的 ActiveConnection属性设置为有效 Connection对象,将 CommandText属性设置为有效命合,并且将 Command type属性 置为 adCmdstoredProc。 Refresh方法的语法格式为: DODO1 Refresh
l Password属性:在访问一个受保护的数据库时需要设置Password属性。与Provider属性和 UserName属性类似,如果在ConnectionString属性中指定了密码,则将覆盖在这个属性中 指定的值。 l RecordSource属性:返回或设置ADO控件的记录源,用于决定从数据库检索的信息。其设 置值可以是数据库表名,也可以是有效的 SQL语句,如SELECT * FROM 学生 WHERE (性 别 = '男') l Mode属性:决定用记录集进行的操作。 l CommandType属性:用以确定Source属性是SQL语句、一个表名、一个存储过程,还是一 个未知的类型。 l CursonLocation属性:指定光标的位置,是位于客户机上还是位于服务器上。 l ConnectionTimeout属性:设置等待建立一个连接的时间,以秒为单位。如果连接超时,则 返回一个错误。 l MaxRecord属性:决定光标的大小。如何决定这个属性的值取决于所检索的记录的大小, 以及计算机可用资源(内存)的多少。MaxRecords属性不能太大。 l CashSize属性:指定从光标中可以检索的记录数。若将CursorLocation属性设为客户端, 则这个属性只能设为一个较小的数目(可能为1).不会有任何不利的影响;若光标的位置位 于服务器,则可以对这个数进行调整,将其设为可以查看的行数。 2.ADO数据控件的主要方法 Refresh方法:用于更新集合中的对象以便反映来自指定提供者的对象情况。在调用 Refresh方法之前,应该将Command对象的ActiveConnection属性设置为有效 Connection对象,将CommandText属性设置为有效命令,并且将CommandType属性 置为adCmdStoredProc。 Refresh方法的语法格式为:ADODC1 .Refresh
UpdateRecord方法∶据此可将约束控件上的当前内容写入数据库。 UpdateControls方法∶从控件的 ADO Recordset对象中获取当前行,并在绑定到此控 件的控件中显示相应的数据 Close方法:主要用于关闭打开的对象及任何相关对象。使用该法可以关闭 Connection 或 Recordset对象以便释放所有关联的桑统资源。关闭对象并井将它从内存中删除,要 将对象从内存中完全删除,可将对象变量设置为 Nothing 3.ADO数据控件的常用事件 Willmove和 MoveComplete事件: WillMove事件在执行挂起操作更改 Recordset中的当 前位置前调用,而 Move Complete事件在执行挂起操作更改 Recordset中的当前位置后 调用。当执行ADO数据控件自动创建的记录集的Open、 MoveNext、Move、 Movelast、 MoveFirst movePrevious、 Bookmark、 AddNew、 Delete、 Requery以及 Resync方 法时,这两个事件将被触发。 WillChange Field和 FieldChangeComplete事件: WillChange Field事件发 Recordset对 象中的Feld对象的值被修改之前,而 Field Change Complete事件则发生在被修改之后 般来说,对记录集执行了 Update、 Delete、 CancelUpdate、 Update Batch.或 Cancelbatch方法之前或之后,这两个事件将分别被触发。 WillChangeRecordse和 Recordset change Complete事件: WillChangerecordset和 Recordset Change Complete事件分别发生在对 Recordset对象进行挂起或修改操作之前 和之后。 般来说,如果对 Recordset对象执行了 Requery、 Resync、 Close、Open和 Filter方法之前或之后,这两个事件被触发。 Infomessage事件∶一且 Connectionevent操作成功完成,该事件被调用并且由提供者返 回附加信息
UpdateRecord方法:据此可将约束控件上的当前内容写入数据库。 UpdateControls方法:从控件的ADO Recordset对象中获取当前行,并在绑定到此控 件的控件中显示相应的数据。 Close方法:主要用于关闭打开的对象及任何相关对象。使用该法可以关闭Connection 或Recordset对象以便释放所有关联的系统资源。关闭对象并非将它从内存中删除,要 将对象从内存中完全删除,可将对象变量设置为Nothing。 3.ADO数据控件的常用事件 WillMove和MoveComplete事件:WillMove事件在执行挂起操作更改Recordset中的当 前位置前调用,而MoveComplete事件在执行挂起操作更改Recordset中的当前位置后 调用。当执行ADO数据控件自动创建的记录集的Open、MoveNext、Move、MoveLast、 MoveFirst MovePrevious、Bookmark、AddNew、Delete、Requery以及Resync方 法时,这两个事件将被触发。 WillChangeField和FieldChangeComplete事件:WillChangeField事件发Recordset对 象中的Field对象的值被修改之前,而FieldChangeComplete事件则发生在被修改之后。 一般来说,对记录集执行了Update、Delete、CancelUpdate、UpdateBatch或 CancelBatch方法之前或之 后,这两个事件将分别被触发。 WillChangeRecordset和RecordsetChangeComplete事件:WillChangeRecordset和 RecordsetChangeComplete事件分别发生在对Recordset对象进行挂起或修改操作之前 和之后。 一般来说,如果对Recordset对象执行了Requery、Resync、Close、Open和 Filter方法之前或之后,这两个事件被触发。 InfoMessage事件:一旦ConnectionEvent操作成功完成,该事件被调用并且由提供者返 回附加信息
17-3-2ADO摔件的添加与设置 1.岙加ADO数据控件 在使用AD○数据控件之前,首先需要将ADO数据控件添加到当前的工程中,其步骤 (1)打开一个新的工程,将工程的Name属性设置为 ADODCDemo,并且将工程保存 为 ADODCDemo.vbp,将桑统默认的窗体的Name属性设置为 frmADOdO,将窗体的 Caption属性设置为“使用ADO数据挡件实例”,最后将窗体保存为 frmadodc frm文件。 (2)在 Visual basic中选择【工程】|【部件 】命爷,打开【部件】对话框【部 件】对话框中【控件】标签中选中【 Microsoft ado data Control6.0( OLE DB)选 项,如图17-3所示。然后单击【确定】按钮关闭对话框;当前工程的工具箱中会自动 出现ADO数据控件的图标。 2.在窗体中放置ADo数据控件 将一个ADO数据控件添加到当前工程中以后,可以把它从工具箱中拖放到窗体上,然后 将它连接到信息管理数据库。具体步骤如下 (1)将AD○数据控件从工具箱中拖放到窗体上,在属性窗口中将它的Name属性设置 为 Adodcxxgl (2)ADO数据控件的 Align属性设置为2- VbAlignBotton,表示将控件放置在窗体底 部
1.添加ADO数据控件 在使用ADO数据控件之前,首先需要将ADO数据控件添加到当前的工程中,其步骤: (1)打开一个新的工程,将工程的Name属性设置为ADODCDemo,并且将工程保存 为 ADODCDemo.vbp,将系统默认的窗体的Name属性设置为frmADODC,将窗体的 Caption属性设置为“使用ADO数据控件实例”,最后将窗体保存为frmadodc.frm文件。 (2)在Visual Basic中选择【工程】|【部件...】命令,打开【部件】对话框【部 件】对话框中【控件】标签中选中【Microsoft ADO Data Control 6.0(OLE DB)选 项,如图17-3所示。然后单击【确定】按钮关闭对话框;当前工程的工具箱中会自动 出现ADO数据控件的图标。 2.在窗体中放置ADO数据控件 将一个ADO数据控件添加到当前工程中以后,可以把它从工具箱中拖放到窗体上,然后 将它连接到信息管理数据库。具体步骤如下: (1)将ADO数据控件从工具箱中拖放到窗体上,在属性窗口中将它的Name属性设置 为Adodcxxgl。 (2)ADO数据控件的Align属性设置为2-VbAlignBottom,表示将控件放置在窗体底 部。 17-3-2 ADO控件的添加与设置