教学课件第15章ADO与数据绑定控件

上传人:cn****1 文档编号:569425579 上传时间:2024-07-29 格式:PPT 页数:88 大小:722.50KB
返回 下载 相关 举报
教学课件第15章ADO与数据绑定控件_第1页
第1页 / 共88页
教学课件第15章ADO与数据绑定控件_第2页
第2页 / 共88页
教学课件第15章ADO与数据绑定控件_第3页
第3页 / 共88页
教学课件第15章ADO与数据绑定控件_第4页
第4页 / 共88页
教学课件第15章ADO与数据绑定控件_第5页
第5页 / 共88页
点击查看更多>>
资源描述

《教学课件第15章ADO与数据绑定控件》由会员分享,可在线阅读,更多相关《教学课件第15章ADO与数据绑定控件(88页珍藏版)》请在金锄头文库上搜索。

1、数据库原理与应用教程国家“十一五”规划教材第15章 ADO与数据绑定控件15.1 ADO数据控件 15.2 数据绑定控件15.3 ADO对象15.1 ADO数据控件 ADO数据控件是目前流行的数据访问控件,它支持OLE DB数据访问模型。使用ADO数据访问控件,除了可以访问大型关系型数据库管理系统和小型个人数据库管理系统。ADO数据控件是ActiveX控件,需要手工将其添加到工具箱中。选择“工程”菜单下的“部件” 。Adodc控件在窗体上的形式 ADO数据控件的主要属性 ConnectionString属性 用于建立与数据源的连接 CommandType属性 指明命令的类型,共有四种 Reco

2、rdSource属性 用于设置ADO结果集的内容 MaxRecords属性 决定结果集中的记录的最大数目 Recordset属性 用于存放从数据提供者那里获得的查询结果 ConnectionString属性单击ADO数据控件属性页中的“ConnectionString”属性,然后单击 按钮 CommandType属性adCmdUnknown:默认值。表示RecordSource中的命令类型未知。adCmdTable:RecordSource属性的内容是一个表名。adCmdText:RecordSource属性的内容是一个查询语句文本串。adCmdStoredProc:RecordSource属

3、性的内容是一个存储过程名。RecordSource属性用于设置ADO结果集的内容.这个内容可以来自于一张表,也可以来自一个查询语句,也可以来自一个存储过程的执行结果。RecordSource属性的值与CommandType属性的值有关,两者协同使用。设置RecordSource属性在已经设置好ConnectionString属性的ADO数据控件上右击鼠标,在弹出的菜单中选择“ADODC属性”命令,在弹出此对话框上选择“记录源”标签页。 MaxRecords属性决定了结果集中的记录的最大数目。这个属性取值大小取决于所检索的记录的大小以及计算机的可用资源(内存)的多少。Recordset属性是AD

4、O数据控件中实现数据记录操作的最重要的属性,而且这个属性本身又是一个对象,也有自己的属性和方法,它直接指向ADO对象模型中的Recordset对象。Recordset属性也称为记录集或结果集,用于存放从数据提供者那里获得的查询结果,这个结果一般存放在客户端内存中。 ADO数据控件的主要方法 Refresh用于更新ADO数据控件属性,使修改后的ADO数据控件属性生效。当修改了ADO数据控件的ConnectionString属性的值时,使用Refresh方法会重新连接一次数据库;当修改了ADO数据控件的RecordSource属性的值时,使用Refresh方法会重新执行RecordSource属性

5、的内容,重新产生结果集。使用Refresh方法的格式为: ADO数据控件名.Refresh ADO数据控件的主要事件 EndOfRecordset事件 当在结果集中移动记录指针时,当记录指针超出了结果集的最后一条记录时,触发此事件。 Error事件 只有在没有执行任何VB代码而发生了一个数据访问错误时,才会触发此事件。 WillChangeField和FieldChangeComplete事件 当对结果集中的一个或多个字段值进行修改前,触发WillChangeField事件;当对结果集中的一个或多个字段值修改之后,触发FieldChangeComplete事件。 ADO数据控件的主要事件(续)

6、WillChangeRecordWillChangeRecord和和RecordChangeCompleteRecordChangeComplete事件事件 当对结果集中的一个或多个记录进行修改前,触发WillChangeRecord事件;当对结果集中的一个或多个记录修改之后,触发RecordChangeComplete事件。 WillMove事件和MoveComplete事件 在结果集的当前行记录指针移动之前,触发WillMove事件;在结果集的当前行记录指针移动完成后,触发MoveComplete事件。 RecordSet对象的主要属性 BOF:布尔值,如果结果集中记录的当前行指针移到了第

7、一条记录的前边,则此值为真,否则为假。EOF:布尔值,如果结果集中记录的当前行指针移到了最后一条记录的后边,则此值为真,否则为假。RecordCount:存放结果集中的记录个数。Sort:将结果集中的记录按某个字段排序。RecordSet对象的主要属性(续)AbsolutePosition:记录当前行记录在结果集中的顺序号,结果集记录序号从1开始。ActiveCommand:结果集中创建的命令。ActiveConnection:结果集中创建的连接。Bookmark:结果集中当前行记录的标识号。Fields:结果集中的字段集合。Fields对象的主要属性Fields.Name:字段名称。Fiel

8、ds.Value:字段的值。Fields.OrdinalPosition:字段在Fields集合中的顺序。Fields.Type:字段的数据类型。Fields.Size:字段的最大字节数。Fields.SourceTable:字段来自的表Fields.SourceField:字段来自的表中的列示例例:利用Fields对象,得到当前行记录的某字段的值,用法如下:Fields(“字段名”).Value或:Fields(数字).ValueRecordSet对象的主要方法1. Move方法组 MoveFirst方法:将当前行记录指针移到结果集中的第一行。MovePrevious方法:将当前行记录指针向

9、前移动一行。MoveNext方法:将当前行记录指针向后移动一行。MoveLast方法:将当前行记录指针移到结果集中的最后一行。 RecordSet对象的主要方法(续)2AddNew方法用于在结果集中添加一个新记录。3Update方法将新记录缓冲区中的记录或者对当前记录的修改真正写到数据库中。4Delete方法删除结果集中当前行记录指针所指的记录,并且这个删除是直接对数据库数据操作的,删除后的数据不可恢复。RecordSet对象的主要方法(续)5CancelUpdate方法用于取消新添加的记录或对当前记录所做的修改。6. Find方法用于在当前结果集中查找满足条件的记录。Find方法的格式为:

10、ADOADO数据控件名数据控件名.Recordset. Find.Recordset. Find(“ “查找条件表达式查找条件表达式” ”)例: 查找年龄在20到25之间的学生: Find(“Sage = 20 AND Sage = 25”) 15.2 数据绑定控件 数据绑定实际上就是将结果集中的数据同应用程序界面上的控件联系起来,通过这些界面上的控件将结果集中的数据显示给用户。能够实现将结果集中的数据显示出来的功能的控件就称为数据绑定控件。标准绑定控件:TextBox、CheckBox、ListBox、ComboBox等 外部绑定控件:DataCombo、DataList、DataGrid、

11、MSHFGrid、Microsoft Chart等 DataGrid控件 正式名称是:Microsoft DataGrid Control 6(OLE DB),以表格的形式显示结果集中的全部数据,并允许用户在此控件中浏览、添加、删除和修改记录。 需手工添加到工具箱中。DataGridDataGrid控件的特殊控件的特殊属性性1“通用”选项卡允许添加(AllowAddNew属性):允许添加新记录。允许删除(AllowDelete属性):允许删除记录。允许更新(AllowUpdate属性):允许更改记录。列标头(ColumnHeaders属性):决定是否显示字段名。有效(Enabled属性):决定

12、运行时能够对DataGrid控件进行操作,如移动数据区滚动条等。DataGridDataGrid控件的特殊控件的特殊属性(性(续)2. “键盘”选项卡 用于控制控件的浏览属性。“允许箭头”(AllowArrow属性,默认)使光标可以在列和行间移动。如果选择了“自动换行单元指针”(WrapCellPointer属性)复选框,则可以用光标控制键或Tab键来移动光标,从当前记录的最后一列移到下个记录的第一列。如果设置了“Tab动作键”(TabAction属性)为“2-dbgGridNavigation”,则可以使用Tab键浏览记录。 DataGridDataGrid控件的特殊控件的特殊属性(性(续)

13、3“列”选项卡提供了在设计模式下对DataGrid控件中列集合的控制,通过此页可以为每个列集合对象设置标题和DataGrid的属性值。通常的做法是通过改变“标题”(Caption属性)使列的标题可读性更好。 DataGridDataGrid控件的特殊控件的特殊属性(性(续)4. “布局”选项卡用于设置附加的列属性,其最重要的特征是可以设置列的对齐方式和宽度。“锁定”(Locked)复选框用于防止值被修改;不选中“允许调整大小”(AllowSizing)复选框可以防止改变列的宽度;不选中“可见”(Visible)复选框可以隐藏列;选中“自动换行”(WrapText)复选框可以写多行文本;选中“按

14、钮”(Button)复选框可加入一个下拉式的按钮列表。 DataGridDataGrid控件的特殊控件的特殊属性(性(续)5. “颜色”选项卡用于设置列标题以及控件的其他部分的前景色和背景色,是从Visual Basic 6属性窗口中的前景色和背景色条目复制过来的。6“字体”选项卡可以有选择的设置列标题以及DataGrid控件体的字体、大小及属性。 DataGridDataGrid控件的特殊控件的特殊属性(性(续)7“拆分”选项卡用于把DataGrid中的一列分割成多列,以方便对列中的数据进行滚动查看。8“格式”选项卡可以指定每个独立列的数据类型,如把记录价格的列指定为“货币”类型,对文本列采

15、用默认的“通用”类型,对数字列指定为“数字” 类型,并指明相应的小数位数,等等。 DataGrid控件的特殊属性、方法和事件 使用HeadClick事件对列进行排序 例:对单击的列进行降序排序。Private Sub DtgStudent_HeadClick(ByVal ColIndex As Integer) With Adodc1.Recordset .Sort = .Fields(ColIndex).Name & DESC End With DtgStudent.RefreshEnd SubDataGrid控件的特殊属性、方法和事件(续)在运行模式下改变显示的列通过操作DataGrid控

16、件的列集合,可以在运行模式下隐藏部分列。隐藏列的最简单的方法是设置列的Visible属性为False。 隐藏列示例Private Sub CmdSomeColumns_Click() 隐藏Ssex和Sage列 With DtgStudent .Columns(2).Visible = False Ssex列 .Columns(3).Visible = False Sage列 End With CmdSomeColumns.Enabled = False 显示部分列按钮 CmdAllColumns.Enabled = True 显示全部列按钮 End Sub用DataGrid事件确认更新 事件事

17、件触发时刻触发时刻BeforeColEdit移入新单元后,但在单元中敲入第一个字符之前ColEdit在单元中敲入第一字符后AfterColEdit紧随AfterColUpdate事件之后BeforeColUpdate改变单元值或移入一个新单元之后,但在DataGrid缓冲区内容改变之前AfterColUpdate在为更新的列修改缓冲区之后(同AfterColEdit)BeforeDelete在选中一行并按Delete键之后,但在列从Recordset中删除之前AfterDelete从Recordset删除一行之后BeforeInsert在临时加入的记录组成的列中敲入至少一个字符之后,但在行被加

18、入到Recordset之前AfterInsert在行加入到Recordset之后BeforeUpdate在修改任何列的值或移动一个新记录之后,但在Recordset更新之前AfterUpdate在更新Recordset的行之后DataList和DataCombo控件 功能与ListBox与ComboBox类似。 需要手工添加到VB工具箱中 。 DataList控件主要属性属性属性描述描述DataSource指定ADO数据控件的名称。BoundColumn指定DataSource和RowSouce数据源中有关联关系的字段名称。RowSource指定ADO数据控件的名称,该控件提供了可能的值的列表

19、。DataField指定来自DataSource数据源中的字段名称。ListField指定来自RowSouce数据源、将被显示在DataList列表中的字段的名称。应用示例对象名对象名属性名属性名属性值属性值AdoSCConnectionString连接到Access上的“学生管理数据库”CommandTypeadCmdTableRecordSourceSCAdoStudentConnectionString连接到Access上的“学生管理数据库”CommandTypeadCmdTableRecordSourceStudentDataGrid1DataSourceAdoSCDataList1D

20、ataSourceAdoSCRowSourceAdoStudentDataFieldSnoListFieldSnameBoundColumnSno运行结果15.3 ADO对象 由一组相互独立的对象组成,对象模型中的每个对象都具有各自的属性、方法和事件,通过设置和使用这些对象的属性、方法和事件可以实现对数据库的全部操作。 ADO对象模型ConnectionErrorCommandRecordsetErrorsParameterParametersFieldFields15.3.1 Connection对象 表示一个OLE DB数据源的开放式连接。 是ADO对象模型的基础。 在使用ADO对象模型编

21、程之前,必须先引用ADO对象模型。方法为:在VB的“工程”菜单下选择“引用”命令,然后在打开的窗口中选择“Microsoft ActiveX Data Objects 2. Library”选项(其中“”代表机器上所安装的版本号)。ConnectionConnection对象的主要象的主要属性性 ConnectionString 用于指定连接到的数据源名称,使用方法及含义同ADO数据控件。Provider 连接中使用的OLE DB提供者。ConnectionTimeout 执行Open方法之后等待建立连接的秒数,默认为15秒。0表示无限期等待。State 表示Connection对象是打开还是

22、关闭的常量。ConnectionConnection对象的主要方法象的主要方法 Open:打开带有数据源的连接,即真正的建立起到数据源的物理连接。Close:关闭一个打开的与数据源的连接,即终止与数据源的连接。Execute:在没有创建Command对象的情况下执行连接中的一个命令。BeginTrans:开始一个事务。CommitTrans:提交一个事务。RollbackTrans:回滚一个事务。 ConnectionConnection对象的主要事件象的主要事件 ExecuteComplete:连接中的命令被执行后发生的动作。BeginTransComplete:在BeginTrans方法完

23、成后发生的动作。RollbackTransComplete:当RollbackTrans操作完成时发生的动作。WillConnect:在试图连接到数据源之前发生的动作。WillExecute:试图在连接中执行一条命令前发生的动作。ConnectionConnection对象的主要集合象的主要集合 Errors Error对象的集合。Properties 描述连接的Property对象集合。使用Connection对象 (1)设置ConnectionString连接属性Dim adoCn As ADODB.ConnectionSet adoCn = New ADODB.Connection使用O

24、DBC数据源连接数据库adoCn.ConnectionString = DNS=ODBC_DSN;UID = LoginID; PWD= password使用OLE DB提供者连接数据库adoCn.ConnectionString = Provider=SQLOLEDB.1;User ID=LoginID; Initial Catalog=Pubs;Data Source=DB_Server_Name使用Connection对象(续)(2)使用Open方法建立连接Open方法用于打开连接:adoCn.Open(3)使用Close方法断开连接 用于关闭一个打开的Connection对象,即断开与

25、数据源的连接。 adoCn.Close15.3.2 Command对象 Command对象代表对数据源执行的命令。使用Command命令可以查询数据,并将查询结果返回给RecordSet对象。 CommandCommand对象的主要象的主要属性性 ActiveConnection:指定当前使用的连接。CommandText:命令的文本表达(SQL语句、存储过程名和表名)。CommandType:指定要执行的命令的类型,与CommandText属性的内容对应。取值如下:CmdText:指定CommandText的内容是一个SQL语句。adCmdTable:指定CommandText的内容是一个表

26、名。adCmdStoredProc:指定CommandText的内容是一个存储过程名。adCmdUnknown:默认值,表示命令类型未知。CommandCommand对象的主要象的主要属性(性(续)CommandTimeout数据源作出响应的最长等待秒数。 Name表示Command对象的字符串。State表示对象是打开、关闭、正在执行某一命令和获取记录时的状态常量,其取值同Connection对象的State属性。CommandCommand对象的主要方法象的主要方法 Excute执行CommandText属性中指定的命令并返回由此生成的记录集。CreateParameter 创建一个与命令

27、相关的新的参数对象。CommandCommand对象的主要集合象的主要集合 Parameters与Command对象相关的Parameter对象的集合。Properties描述Command对象相关的Property对象的集合。 使用Command对象 声明对象Dim adoCn As ADODB.ConnectionDim adoCm As ADODB.Command建立连接Set adoCn = New ADODB.ConnectionadoCn.ConnectionString = Provider=SQLOLEDB.1;User ID=LoginID; _ & Initial Cata

28、log=pubs;Data Source=DB_Server_NameadoCn.Open使用Command对象(续)执行命令Set adoCm = New ADODB.CommandSet adoCm.ActiveConnection = adoCnadoCm.CommandText = select * from authorsadoCm.Execute使用Command对象名执行命令adoCm.Name = SelAuthorsSet adoCm.ActiveConnection = adoCnadoCm.CommandText = select * from authorsadoCn.

29、SelAuthors 用名字执行命令15.3.3 Recordset对象 代表从数据提供者那里获取的数据记录集。 Recordset对象的主要功能包括:建立记录集;确定要操作的记录集中的记录;通过移动指针浏览记录;对记录集中的数据执行更改操作;对记录集中的数据进行过滤。RecordsetRecordset对象的主要象的主要属性性 AbsolutePosition:记录集中当前记录的顺序位置。ActiveCommand:记录集中创建的命令。ActiveConnection:记录集中创建的连接。BOF:如果当前行移动到记录集的第一条记录的前边,则为真。EOF:如果当前行移动到记录集的最后一行记录的

30、后边,则为真。Bookmark:记录集中当前记录的唯一标识。DataSource:指定要绑定的数据源。RecordsetRecordset对象的主要象的主要属性(性(续)EditMode:表示当前记录是否正在被编辑,这个值可以是adEditNone、adEditInProgress、adEditAdd和adEditDelete。Filter:允许用户选择记录集中的部分数据进行操作。其使用方法为:RecordsetRecordset对象名对象名.Filter = .Filter = 选择表达式选择表达式其中“选择表达式”的写法同SELECT语句中的WHERE子句。释放过滤的语句为:Records

31、etRecordset对象名对象名.Filter = adFilterNone.Filter = adFilterNoneRecordsetRecordset对象的主要象的主要属性(性(续)MaxRecordsMaxRecords:记录集中能返回的最多记录数。:记录集中能返回的最多记录数。RecordCountRecordCount:记录集中记录的个数。如果:记录集中记录的个数。如果ADOADO不能不能判断记录集有多少条记录,可以返回判断记录集有多少条记录,可以返回adUnknown(-1)adUnknown(-1)。SortSort:将记录集按指定字段排序。:将记录集按指定字段排序。Sour

32、ceSource:记录集来源的命令和:记录集来源的命令和SQLSQL查询。查询。CursorLocationCursorLocation:描述记录集中使用的游标的位置:描述记录集中使用的游标的位置的常量。的常量。CursorTypeCursorType:描述记录集中使用的游标类型的常量。:描述记录集中使用的游标类型的常量。LockTypeLockType:控制编辑过程中设置的加锁类型。:控制编辑过程中设置的加锁类型。RecordsetRecordset对象的主要方法象的主要方法 AddNew:向记录集中添加一条新记录。CancelUpdat:取消对数据的修改。Close:关闭记录集。Delet

33、e:删除当前记录。Find:查找符合某些规则的记录。Move:将当前记录的位置移动一定的间隔。RecordsetRecordset对象的主要方法(象的主要方法(续)MoveFirst:移动到第一条记录。MoveLast:移动到最后一条记录MoveNext:移动到下一条记录。MovePrevious:移动到上一条记录Open:打开一个记录集。Update:当Edit和AddNew方法完成后要执行的方法。UpdateBatch:在一个游标中当批量处理完成后要执行的方法。RecordsetRecordset对象的主要事件象的主要事件 EndOfRecordset 当记录集中因没有更多的记录,而引起M

34、oveNext方法执行失败时产生的事件。FieldChangeComplete 当字段中的值被改变后产生的事件。RecordsetChangeComplete 当对记录集所做的修改被执行时产生的事件。RecordsetRecordset对象的主要事件(象的主要事件(续)WillChangeField一个Field对象的值被改变前产生的事件。WillChangeRecord一个列被改变之前产生的事件。WillChangeRecordset记录集中的修改都完成前产生的事件。WillMove记录指针重新定位前产生的事件。 RecordsetRecordset对象的集合象的集合 Recordset对象

35、包含的集合是Fields,它是记录集中的字段集合。CursorLocation属性用于设置游标的位置,该属性的取值为:adUseClient:使用本地客户端游标。其特点是服务器将整个结果集传回给客户端,网络流量较大,但下载后对数据的浏览速度快。adUseServer:默认值。使用数据源提供的服务器端游标。其特点是仅传送客户端需要的记录,网络流量小,但服务器资源消耗大。不支持Bookmark和AbsolutePosition等属性。 CursorType属性用于指定Recordset对象希望执行的动作。ADO Recordset对象支持四种游标类型:动态游标(adOpenDynamic)静态游标

36、(adOpenStatic)键集游标(adOpenKeyset)仅向前游标(adOpenForwardonly)LockType属性用于设置多用户情况下记录集中的记录的锁定方式,用于保证各用户间的操作互不干扰。其取值有:adLockReadOnly:默认值,不能编辑记录集中的数据。adLockPessimistic:悲观锁。adLockOptimistic:乐观锁。adLockBatchOptimistic:适用于使用UpdateBatch方法更新批量多条记录的记录集。使用Recordset对象的步骤(1 1)打开记录集)打开记录集使用使用CommandCommand对象的对象的Execute

37、Execute方法创建方法创建RecordsetRecordset对对象:象:Set adoRecordset = adoCommand.ExecuteSet adoRecordset = adoCommand.Execute使用使用ConnectionConnection对象的对象的ExecuteExecute方法创建方法创建RecordsetRecordset对象:对象:Set adoRecordset = Set adoRecordset = adoConnection.Execute(select * from adoConnection.Execute(select * from a

38、uthors)authors)直接使用直接使用RecordsetRecordset对象的对象的OpenOpen方法创建方法创建RecordsetRecordset对象:对象:adoRecordset.OpenadoRecordset.OpenRecordset对象的Open方法语法格式为: Recordset.Open Source, ActiveConnection, CursorType, LockType, Options所有这些选项都是可选的,可以在调用Open方法之前,通过设置这些选项对应的属性来设置其值。Source选项指定了要从哪里获取数据,其有:一个返回记录的Command对象

39、。SQL语句。表名。存储过程名。Open方法的一些选项ActiveConnection选项指定了要使用的ADO连接,这个选项可以是一个已打开的Connection对象,也可以是一个连接字符串。 Options选项为提供者提供了附加信息。这些选项包括:adCmdUnknown:默认值。不向提供者提供附加信息。adCmdText:告诉提供者CommandText属性是文本命令。adCmdTable:是表的名字。adCmdStoredProc:是存储过程名。adCmdFile:是一个文件名。 示例Dim adoRs As ADODB.RecordsetSet adoRs = New ADODB.Re

40、cordsetadoRs.ActiveConnection = adoCnadoRs.CursorType = adOpenForwardOnlyadoRs.CursorLocation = adUseClientadoRs.Source = authorsadoRs.Open , , , , adCmdTable15.3.4 Field对象 Field对象表示记录集中数据的某个单独的列。一旦获得了记录集,通常接下来就是使用Fields集合来读取记录集中的数据。由于Fields集合是Recordset对象的默认属性,因此,在使用时可以省略此名称。例如:Recordset.Fields(0).V

41、alueRecordset(0) FieldField对象的主要象的主要属性性 ActualSize字段中实际存储的数据尺寸。DefinedSize字段能存储的最大数据量。Name字段的名称。NumericScale十进制小数点右边的位数。FieldField对象的主要象的主要属性(性(续)OriginalValue在其他用户改变字段之前字段的值。Precision十进制小数的精度。Type描述字段的数据类型的常量。Value字段中存储的数据。使用Field对象 Private Sub cmdGo_Click()演示引用Fields字段值的不同方法Dim adoCn As ADODB.Conn

42、ectionDim adoRs As ADODB.RecordsetDim adoFld As ADODB.Field打开一个recordset,访问SQL Server自带的Northwind数据库中的Customers表Set adoCn = New ADODB.ConnectionadoCn.Open provider = SQLOLEDB.1;Data Source=(local); User ID = sa; Initial Catalog=Northwind Set adoRs = New ADODB.RecordsetadoRs.Open Customers, adoCn使用Fi

43、eld对象(续)下述几种对字段的访问方法效果是一样的使用字段的索引,明确写出集合的名字lboResults.AddItem adoRs.Fields(0).ValuelboResults.AddItem adoRs.Fields(0)使用字段的索引,使用默认属性lboResults.AddItem adoRs(0).ValuelboResults.AddItem adoRs(0)使用Field对象(续)使用字段的名字,明确写出集合的名字lboResults.AddItem adoRs.Fields(CustomerID).ValuelboResults.AddItem adoRs.Fields

44、(CustomerID)使用字段的名字,使用默认属性lboResults.AddItem adoRs(CustomerID).ValuelboResults.AddItem adoRs(CustomerID)End Sub15.3.5 Parameter对象 Parameter对象表示Commad对象的一个独立参数。这个对象是SQL查询时的一个运行参数,或者是存储过程中的输入或输出参数。大多数情况下,参数用于各种类型的参数化命令中。 Parameter对象的主要属性 Direction:表示一个参数是输入参数还是输出参数。Name:参数的名称。NumericScale:十进制小数点右边的位数。

45、Precision:十进制小数的精度。Properties:描述这个参数的Property对象的集合。Type:参数的数据类型。Value:参数的当前值。使用Parameter对象 Private Sub cmdGetParameters_Click()Private Sub cmdGetParameters_Click() 获得指定的存得指定的存储过程的程的参数Dim adoCm As ADODB.CommandDim adoCm As ADODB.CommandDim adoPrm As ADODB.ParameterDim adoPrm As ADODB.ParameterDim ado

46、Rs As ADODB.RecordsetDim adoRs As ADODB.RecordsetSet adoCm = New ADODB.CommandSet adoCm = New ADODB.CommandSet adoCm.ActiveConnection = adoCnSet adoCm.ActiveConnection = adoCnadoCm.CommandText = reptq3 adoCm.CommandText = reptq3 pubspubs数据据库中的中的存存储过程名程名adoCm.CommandType = adCmdStoredProcadoCm.Comman

47、dType = adCmdStoredProc 获得存得存储过程程参数使用Parameter对象(续) 填充充ParametersParameters中的每中的每个参数For Each adoPrm In adoCm.ParametersFor Each adoPrm In adoCm.Parameters If adoPrm.Direction = adParamInput Then If adoPrm.Direction = adParamInput Then adoPrm.Value = InputBox(adoPrm.Name, enter adoPrm.Value = InputBo

48、x(adoPrm.Name, enter parameter value)parameter value) End If End IfNext adoPrmNext adoPrm 从存存储过程得到程得到记录集集Set adoRs = adoCm.Execute Set adoRs = adoCm.Execute .End SubEnd Sub15.3.7 Property对象 ADO 对象有两种类型的属性:内置属性和动态属性。内置属性是在ADO中实现并立即可用于任何新对象的属性,并使用“对象名.Property”语法来得到和设置属性值。 动态属性由基本的数据提供者定义,并出现在相应的ADO对象

49、的Properties集合中。 Property对象动态属性只能通过集合使用“对象名.Properties(0)” 或“对象名.Properties(Name)”语法来引用。Property对象有四个属性: Name:标识属性的字符串。Type:用于指定属性数据类型的整数。Value:包含设置属性的值。Attributes:指示特定于提供者的属性特征的长整型值。Error对象 Error对象记录数据操作过程中所发生的错误信息。由于数据访问可能会引起多个错误,因此,Error对象是包含在一个Errors集合中的。如果最后一次的操作成功了,则这个集合为空,否则,可以使用For Each来依次检查每

50、个错误。Error对象的主要属性Description:错误信息的文字描述。HelpContext:错误信息的帮助主题。HelpFile:错误信息的帮助文件。Number:错误信息编码。Source:引起错误的对象。SQLState:原始ODBC SQLState常量。 使用Error对象Private Sub cmdConnect_Click() 试图要连接到数据源,但捕获到错误 Dim Cnn As Connection Dim Err As Error On Error GoTo HandlerErr Set Cnn = New Connection Cnn.Open txtConnec

51、tionString 假设要连接的服务器不存在使用Error对象(续)ExitHere: Exit Sub HandlerErr: For Each Err In Cnn.errrors MsgBox Error & Err.Number & & Err.Description Next Err Resume ExitHere End Sub15.3.9 使用ADO对象模型访问数据库 一般步骤:创建Connection对象与数据源建立连接。创建Command对象,设置该对象的活动连接是上一步的Connection对象,设置命令文本属性为访问数据源所需的命令。使用Command对象的Execut

52、e方法执行命令,如果是查询命令,该方法会返回一个Recordset对象。使用Recordset对象操作记录。 查询authors表示例 Dim adoConnection As New ADODB.ConnectionDim adoConnection As New ADODB.ConnectionDim adoCommand As New ADODB.CommandDim adoCommand As New ADODB.CommandDim adoRecordset As New ADODB.RecordsetDim adoRecordset As New ADODB.Recordsetad

53、oConnection.ConnectionString = adoConnection.ConnectionString = Provider=SQLOLEDB.1;User ID=sa; Initial Provider=SQLOLEDB.1;User ID=sa; Initial Catalog=Pubs;Data Source=(local)Catalog=Pubs;Data Source=(local)adoConnection.OpenadoConnection.OpenadoCommand.ActiveConnection = adoConnectionadoCommand.Ac

54、tiveConnection = adoConnectionadoCommand.CommandType = adCmdTableadoCommand.CommandType = adCmdTableadoCommand.CommandText = ”authors“adoCommand.CommandText = ”authors“set adoRecordset = adoCommand.Executeset adoRecordset = adoCommand.Execute使用ADO对象访问数据库的简化步骤创建Connection对象与数据源建立连接。创建Recordset对象,并设置好

55、活动连接和其它重要属性。使用Recordset对象的Open方法,直接打开一个记录集。使用Recordset对象操作记录。 示例Dim adoConnection As New ADODB.ConnectionDim adoConnection As New ADODB.ConnectionDim adoRecordset As New ADODB.RecordsetDim adoRecordset As New ADODB.Recordset 建立建立连接接adoConnection.ConnectionString = adoConnection.ConnectionString = Pr

56、ovider=SQLOLEDB.1;User ID=sa; Initial Provider=SQLOLEDB.1;User ID=sa; Initial Catalog=Pubs;Data Source = (local)Catalog=Pubs;Data Source = (local)adoConnection.OpenadoConnection.Open 建立建立记录集集adoRecordset.ActiveConnection = adoConnectionadoRecordset.ActiveConnection = adoConnectionadoRecordset.CursorLocation = adUseClientadoRecordset.CursorLocation = adUseClientadoRecordset.CursorType = adOpenDynamicadoRecordset.CursorType = adOpenDynamicadoRecordset.Source = select * from authorsadoRecordset.Source = select * from authorsadoRecordset.OpenadoRecordset.Open

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号