admin 管理员组文章数量: 887021
2024年2月28日发(作者:swiper no swiping什么意思)
ADODC控件介绍
ADO (ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。例如,如果您希望编写应用程序从DB2或Oracle数据库中向网页提供数据,可以将ADO程序包括在作为活动服务器页(ASP)的HTML文件中。当用户从网站请求网页时,返回的网页也包括了数据中的相应数据,这些是由于使用了ADO代码的结果。
象Microsoft的其它系统接口一样,ADO是面向对象的。它是Microsoft全局数据访问(UDA)的一部分,Microsoft认为与其自己创建一个数据,不如利用UDA访问已有的数据库。为达到这一目的,Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。ADO的一个特征(称为远程数据服务)支持网页中的数据相关的ActiveX控件和有效的客户端缓冲。作为ActiveX的一部分,ADO也是Microsoft的组件对象模式(COM)的一部分,它的面向组件的框架用以将程序组装在一起。
ADO从原来的Microsoft数据接口远程数据对象(RDO)而来。RDO与ODBC一起工作访问关系数据库,但不能访问如ISAM和VSAM的非关系数据库。
ADO 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的Active Server 页面上。可以使用ADO 去编写紧凑简明的脚本以便连接到 Open
Database Connectivity (ODBC) 兼容的数据库和 OLE DB 兼容的数据源,这样 ASP
程序员就可以访问任何与 ODBC 兼容的数据库,包括 MS SQL SERVER、Access、
Oracle 等等。
比如,如果网站开发人员需要让用户通过访问网页来获得存在于IBM DB2或者Oracle数据库中的数据,那么就可以在ASP页面中包含ADO程序,用来连接数据库。于是,当用户在网站上浏览网页时,返回的网页将会包含从数据库中获取的数据。而这些数据都是由ADO代码做到的。
ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性??远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口??远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。
ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象
是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB
provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE
DB取代ODBC。
ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的需要占用342K内存,比RDO的的368K略小,大约是DAO3.5的所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。
如何使用ADO
一旦安装了ADO,在VB的工程->引用对话框中你就可以看到象下图所示的东西了:
选择 "ActiveX Data Objects 1.5 Library" (ADODB).在其下的 "ADO Recordset 1.5
Library"是一个客户端的版本(ADOR),它定义了有聚的数据访问对象。ADOR 对于客户端的数据访问来说是足够的了,因为你不需要Connection对象来建立与远程数据源的联系。
如果你想要访问更多的外部数据源,你需要安装这些外部数据源自己的OLE DB Provider,就象你需要为新的数据库系统安装新的ODBC驱动程序一样。如果该外部数据源没有自己的OLE DB Provider,你就得使用OLE DB SDK来自己为这个外部数据源创建一个OLE
DB Provider了。这已不是本文讨论的范围了。
示例
下面的示例代码以Northwinds数据库作为远程数据源,然后用ADO来访问它。首先在控制面板中打开“32位数据源”,单击“添加”按钮。在弹出的对话框中选择 "Microsoft Access
Driver (*.mdb)" 作为数据源驱动程序。
然后按下图所示,在对话框中填写下面的内容
选择数据库Northwinds所在路径。单击完成,退出ODBC设备管理器。
启动一个新的VB工程,在窗体的Load事件中输入下面的代码:
Private Sub Form_Load()
Dim cn As tion
Set cn = New tion
'Set Connection properties
tionString = "DSN=RDC Nwind;UID=;PWD=;"
tionTimeout = 30
If = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
End Sub
按F5运行程序,看看,一个消息框弹出来告诉你连接成功了。请注意,这里我特别注明了是tion,而不是tion,这样做是为了将二者区分开(如果你引用了ADODB和ADOR的话,这样做很有必要)。连接字符串看上去同RDO的连接字符串差不多。事实上,二者确实差不多。
如果我们要访问一个SQL server数据库,你的Connection代码看上去应象下面所示:
'设置连接属性er = "MSDASQL"
tionString = "driver={SQL Server};" &
"server=prod1;uid=bg;pwd=;database=main"
"Provider"属性指向SQL Server的OLE DB Provider.
回到我们的示例程序,让我们创建一个Recordset对象来访问“Orders”表,并从该表的"ShipCountry"字段中产生头十个不重复的国家名。修改窗体Load事件中的代码,让它看上去象下面这样。
Private Sub Form_Load()
Dim cn As tion
Dim rs As set
Dim sSQL As String
Dim sOut As String
Dim Count As Integer
Set cn = New tion
Set rs = New set
' Set properties of the Connection.
tionString = "DSN=RDC Nwind;UID=;PWD=;"
tionTimeout = 30
If = adStateOpen Then _
MsgBox "Connection to NorthWind Successful!"
sSQL = "SELECT DISTINCT untry FROM Orders"
Set rs = e(sSQL)
'Enumerate the recordset
sOut = ""
For Count = 1 To 10
sOut = sOut & rs("ShipCountry") & vbCrLf
xt
Next Count
MsgBox sOut, vbExclamation, "ADO Results"
End Sub
运行程序后,你会看到如下图所示的消息框。
不幸的是,目前这个Recrodset对象是只读的和forward cursor。如果你想要获取更多的功能,你需要创建一个独立的Recordset对象,该对象拥有自己的Connection属性,就象下面的代码所示:
Private Sub Form_Load()
Dim rs As set
Dim sSQL As String
Dim sOut As String
Dim Count As Integer
Set rs = New set
sSQL = "SELECT DISTINCT untry FROM Orders"
sSQL, "DSN=RDC Nwind;UID=;PWD=;", adOpenDynamic
'Report Recordset Connection information
MsgBox Connection, , "Connection Info"
'Enumerate the recordset
sOut = ""
For Count = 1 To 10
sOut = sOut & rs("ShipCountry") & vbCrLf
xt
Next Count
MsgBox sOut, vbExclamation, "ADO Results"
End Sub
上面代码返回的结果同前例一样,但是本代码中的Recordset是独立的。这一点是DAO和RDO做不到的。Recordset对象的Open方法打开一个代表从SQL查询返回的记录的游标。虽然你可以用Connection对象同远程数据源建立连接,但请记住,在这种情况下,Connection对象和Recordset对象是平行的关系。
总结
本文仅向你介绍了ADO强大的功能的冰山一角。微软承诺,在将来ADO将会取代DAO和RDO。所以现在你应该考虑如何将你的数据访问代码投向ADO的怀抱。这种转变不会很痛苦,因为ADO的语法同现有的语法差不多。也许微软或第三方会在将来开发出转换向
导来简化这一转换过程。从现在起,你就应开发纯ADO代码的程序。你也可以继续使用DAO或RDO代码来开发你的程序,但落伍的感觉总是不好的。
八、ADO编程应用
ADO(ActiveX Data Objects)是基于组件的数据库编程接口,它是一个和编程语言无关的COM组件系统。本文主要介绍用ADO编程所需要注意的技巧和在VC下进行ADO编程的模式,并对C++Extensions进行了简单的讨论,希望对ADO开发人员有一定的帮助作用。因为ADO是一个和编程语言无关的COM组件系统,所以这里讨论的要点适用于所有的编程语言和编程环境,比如:VB、VBScript、VC、Java等等。
编程技巧
1.显式定义对象类型
实际上,这条准则不仅适用于ADO编程,也适用于其他的与COM对象相关的编程。因为如果一开始就定义变量类型,则编译器在编译的时候就可以知道变量的类型,此时编译器实际上是采用vtable偏移的方式来得到具体的COM对象包含的方法的地址(这一点和C++中虚函数的地址获取方式类似);但如果一开始不指定变量类型的话,比如简单地采用如下的语句:
DIM myCon as Object
或者是:
DIM myCon
这样,编译器在编译的时候就不能得到变量的类型,而只能在运行的时候动态地得到方法的信息(通过使用接口IDispatch的Invoke方法来实现),如此为了得到方法的地址和相关的变量情况就需要在内部进行两次调用,无疑会降低程序的运行速度。
2.绑定列到具体的字段对象
在程序开始时就建立对字段对象的引用,可以避免在每次得到记录后,再在Recordset::Fields中进行查找而增加系统的开销。
例如,可以采用如下所示的代码:
Private Sub TblBrowse_Click()
Dim fld1 As
Dim fld2 As
cordset
set rs=g_e(...)
'g_cn为全局对象tion
Set fld1 = (“id”) '数据表的字段
Set fld2 = (“name”) ’数据表的字段
If = False Then
While = False
xt
Wend
End If
End Sub
3.用SQL语句和存储过程进行数据更新
尽管采用Recordset对象来更新数据是非常方便的,但是它的开销也大,通过数据源对象返回的查询集不仅包含了数据,而且也包含了元数据(metadata),在有些时候元数据可能比数据本身还要大,所以最好采用SQL语句来更新数据。还有要使用存储过程而不是单一的SQL语句来获取信息。因为存储过程是在服务器端执行的,只把结果返回到客户端,这样一方面可以降低网络进行数据交互的开销,另一方面使系统更加容易维护,并且能保持数据的一致性。
4.使用集合操作单条的SELECT语句
在使用游标时,最好使用集合的方法对单条的SELECT语句进行操作。Recordset::get_Collect方法和Recordset::put_Collect方法是Recordset 对象的快捷方式,可以快速地得到一个字段的值而不需要获得关于一个字段的引用。例如,可以采用如下代码:
Sub Collect()
Dim rs As New Recordset
Connection = “...”
=“一条SQL查询语句”
t(0),t(1),t(2)
rs!au_id, rs!au_fname, rs!au_lname
End Sub
5.只查询所需要的数据
尽管很多开发人员都习惯采用“SELECT * FROM TBL”的模式进行查询,但是为了提高系统的效率,如果只需要其中某几个字段的值,最好把这几个字段直接写出来,同时需要限定返回记录集的范围(通过WHERE子句进行限定)。
6.正确选择游标的位置、类型和锁方式
如果只需要按顺序读取记录并且不需要滚动和更新记录,最好使用服务器端游标(adUseServer)、仅向前游标(adOpenForwardOnly)和读加锁(adLockReadOnly),这样可以获得最好的性能。如果需要滚动记录,采用客户端游标(adUseServer)会比采用服务器端游标所得到的性能要好,因为ADO系统默认是采用服务器端游标类型。当然如果数据集合相当大,采用服务器端游标的性能会好一些。同时需要注意:如果采用客户端游
标,最好只采用读加锁(adLockReadOnly)的锁类型,因为如果需要更新数据,客户端游标引擎需要得到额外的信息(元数据),而获取这个信息的代价是非常昂贵的。
7.调整记录集对象的CacheSize属性
ADO使用记录集对象的CacheSize属性来决定提取和缓存的记录的数目,当在缓存的范围内浏览数据时,ADO就只从缓存中提取数据。当要浏览的数据超出缓存范围的时候,ADO就释放当前缓存,提取下一些记录(提取的数目为CacheSize所指定的大小),所以必须根据具体的应用程序的情况,来设定CacheSize的大小,保证得到最佳的性能。
8.定义Command对象的参数
在许多数据源中,得到参数信息和执行命令的代价几乎是一样的,所以最好自己在程序中定义好Command参数(也就是说要定义好参数的名称、类型和方向信息),避免一些从数据提供者(Provider)那里获取信息的操作。
9.使用原始的OLE DB提供者
MDAC对许多数据源提供了原始的数据提供者,比如SQL Server、Oracle和Access数据库,这样就不需要再通过ODBC来获取数据(也就是说不需要再通过ODBC驱动这一层),这样的好处是能更快地得到数据,并且能降低磁盘和内存的开销。
10.断开Connection连接
如果使用客户端游标,就要断开Connection连接。ADO有一个特征是当使用客户端游标操作Recordset记录集的时候,不需要和服务器保持联系。所以可以充分利用这个特性降低服务器端的开销(服务器就不需要维护这些连接了)。当操作完记录集需要更新时,可以重新和数据库进行连接来更新数据。为了创建一个可以断开连接的记录集,同时需要使用静态游标(adOpenStatic)和批处理的加锁模式(adLockBatchOptimistic)。下面是有关处理的VC代码:
Instance(__uuid(Recordset));
pRs->CursorLoction=adUseClient;
pRs->Open(strCmdText,strConnection,adOpenStatic,adLockBatchOptimistic,adCmdText);
pRs->PutRefActiveConnection(NULL);
//对记录集对象pRs进行操作
//重新和数据库建立连接
pRs->PutRefActiveConnectio(pCon);
//批量更新数据
pRs->UpdateBatch(adAffectAll);
需要注意的是:当执行批量更新时,必须自己处理数据冲突问题,因为更新数据时,其他用户也可能同时正在对该数据进行操作。
11.使用adExecuteNoRecords选项
如果不需要返回记录,要使用adExecuteNoRecords选项。ADO 2.0包括一个新的执行选项称为adExecuteNoRecords。当使用该选项的时候,ADO就不会创建记录集对象,不设置任何游标属性。数据提供者因为不需要认证集合的属性而使性能得到优化。具体的例子如下:
e “insert into tbl values(fv1, fv2) ”, , adExecuteNoRecords
对仅有一条的执行语句采用Connection::Execute方法比使用Recordset::Open方法或者是Command::Execute方法的效果要好,因为ADO不保留任何命令状态的信息,因此执行性能就有所改进。
12.使用session/connection缓冲池
因为数据库的打开和关闭非常消耗系统资源,因此,使用连接池对基于多层的应用的性能会有很大的提高。当使用MDAC的时候,开发人员本身并不需要考虑对数据库连接的缓存,MDAC会自动处理它。连接池在两个层次上提供支持:OLE DB sessions和ODBC连接。如果使用ADO,数据库连接会自动被OLE DB session缓冲池所缓存;如果使用ODBC,可以利用在ODBC数据源管理中新的连接缓冲池选项对ODBC缓冲进行设置。
实现方法
我们知道,在VB下进行基于ADO的编程相对比较简单,只要通过reference加载了适当的类型库后,就可以正常地调用ADO对象。但是对于VC下的基于ADO的数据库开发就稍微复杂一些。VC中实现对ADO操作通常有三种方法:
ADO
对象
对象
Command
Connection
DataControl (RDS)
说明
Command 对象定义了将对数据源执行的指定命令。
代表打开的、与数据源的连接。
将数据查询 Recordset 绑定到一个或多个控件上(例如,文本框、网格控件或组合框),以便在 Web 页上显示 数据。
DataFactory (RDS Server)
DataSpace (RDS)
实现对客户端应用程序的指定数据源进行读/写数据访问的方法。
创建客户端代理以便自定义位于中间层的业务对象。
Error
Field
Parameter
包含与单个操作(涉及提供者)有关的数据访问错误的详细信息。
代表使用普通数据类型的数据的列。
代表与基于参数化查询或存储过程的 Command 对象相关联的参数或自变量。
Property
RecordSet
代表由提供者定义的 ADO 对象的动态特性。
代表来自基本表或命令执行结果的记录的全集。任何时候,Recordset
对象所指的当前记录均为集合内的单个记录。
ADODC 事件
名称
AutoSizeChanged
AutoValidateChanged
BackColorChanged
BackgroundImageChanged
说明
当 AutoSize 属性更改时发生。 (继承自 UserControl。)
当 AutoValidate 属性更改时发生。 (继承自 UserControl。)
当 BackColor 属性的值更改时发生。 (继承自 Control。)
当 BackgroundImage 属性的值更改时发生。 (继承自 Control。)
BackgroundImageLayoutChanged
当 BackgroundImageLayout 属性更改时发生。 (继承自
Control。)
BindingContextChanged
CausesValidationChanged
ChangeUICues
Click
ClientSizeChanged
ContextMenuChanged
ContextMenuStripChanged
ControlAdded
ControlRemoved
CursorChanged
Disposed
当 BindingContext 属性的值更改时发生。 (继承自 Control。)
当 CausesValidation 属性的值更改时发生。 (继承自 Control。)
在焦点或键盘用户界面 (UI) 提示更改时发生。 (继承自 Control。)
在单击控件时发生。 (继承自 Control。)
当 ClientSize 属性的值更改时发生。 (继承自 Control。)
当 ContextMenu 属性的值更改时发生。 (继承自 Control。)
当 ContextMenuStrip 属性的值更改时发生。 (继承自 Control。)
在将新控件添加到 Collection 时发生。 (继承自 Control。)
在从 移除控件时发生。 (继承自 Control。)
当 Cursor 属性的值更改时发生。 (继承自 Control。)
当通过调用 Dispose 方法释放组件时发生。 (继承自 Component。)
DockChanged
DoubleClick
DragDrop
DragEnter
DragLeave
DragOver
EnabledChanged
EndOfRecordset
Enter
Error
FetchComplete
FetchProgress
FieldChangeComplete
FontChanged
ForeColorChanged
GiveFeedback
GotFocus
HandleCreated
HandleDestroyed
HelpRequested
ImeModeChanged
Invalidated
KeyDown
KeyPress
KeyUp
Layout
Leave
Load
LocationChanged
LostFocus
当 Dock 属性的值更改时发生。 (继承Control。)
在双击控件时发生。 (继承自 Control。)
在完成拖放操作时发生。 (继承自 Control。)
在将对象拖入控件的边界时发生。 (继承自 Control。)
在将对象拖出控件的边界时发生。 (继承自 Control。)
在将对象拖到控件的边界上发生。 (继承自 Control。)
在 Enabled 属性值更改后发生。 (继承自 Control。)
尝试移到超出 Recordset 末尾的行时调用 EndOfRecordset 事件。
进入控件时发生。 (继承自 Control。)
当 ADODC 中引发异常时发生。
当 ADODC 控件完成从数据库中获取数据时发生。
当 ADODC 控件正在从数据库中获取数据时发生。
当 ADODC 控件的 Recordset 中的 Field 更新完成时发生。
在 Font 属性值更改时发生。 (继承自 Control。)
在 ForeColor 属性值更改时发生。 (继承自 Control。)
在执行拖动操作期间发生。 (继承自 Control。)
在控件接收焦点时发生。 (继承自 Control。)
在为控件创建句柄时发生。 (继承自 Control。)
在控件的句柄处于销毁过程中时发生。 (继承自 Control。)
当用户请求控件的帮助时发生。 (继承自 Control。)
在 ImeMode 属性更改后发生。 (继承自 Control。)
在控件的显示需要重绘时发生。 (继承自 Control。)
在控件有焦点的情况下按下键时发生。 (继承自 Control。)
在控件有焦点的情况下按下键时发生。 (继承自 Control。)
在控件有焦点的情况下释放键时发生。 (继承自 Control。)
在控件应重新定位其子控件时发生。 (继承自 Control。)
在输入焦点离开控件时发生。 (继承自 Control。)
在控件第一次变为可见之前发生。 (继承自 UserControl。)
在 Location 属性值更改后发生。 (继承自 Control。)
当控件失去焦点时发生。 (继承自 Control。)
MarginChanged
MouseCaptureChanged
MouseClick
MouseDoubleClick
MouseDown
MouseEnter
MouseHover
MouseLeave
MouseMove
MouseUp
MouseWheel
Move
MoveComplete
在控件边距更改时发生。 (继承自 Control。)
当控件失去或获得鼠标捕获时发生。 (继承自 Control。)
在鼠标单击该控件时发生。 (继承自 Control。)
当用鼠标双击控件时发生。 (继承自 Control。)
当鼠标指针位于控件上并按下鼠标键时发生。 (继承自 Control。)
在鼠标指针进入控件时发生。 (继承自 Control。)
在鼠标指针停放在控件上时发生。 (继承自 Control。)
在鼠标指针离开控件时发生。 (继承自 Control。)
在鼠标指针移到控件上时发生。 (继承自 Control。)
在鼠标指针在控件上并释放鼠标键时发生。 (继承自 Control。)
在移动鼠标滚轮并且控件有焦点时发生。 (继承自 Control。)
在移动控件时发生。 (继承自 Control。)
当 ADODC 控件的 Recordset 中已发生 MoveFirst、MoveNext
或 MoveLast 方法时发生。
PaddingChanged
Paint
ParentChanged
PreviewKeyDown
在控件空白区更改时发生。 (继承自 Control。)
在重绘控件时发生。 (继承自 Control。)
在 Parent 属性值更改时发生。 (继承自 Control。)
在焦点位于此控件上的情况下,当有按键动作时发生(在 KeyDown 事件之前发生)。 (继承自 Control。)
QueryAccessibilityHelp
在 AccessibleObject 为辅助功能应用程序提供帮助时发生。 (继承自 Control。)
QueryContinueDrag
在拖放操作期间发生,并且允许拖动源确定是否应取消拖放操作。 (继承自 Control。)
RecordChangeComplete
RecordsetChangeComplete
RegionChanged
Resize
RightToLeftChanged
Scroll
SizeChanged
StyleChanged
在 ADODC 控件的 Recordset 中的当前记录更改之后发生。
当 ADODC 控件的 Recordset 更改时发生。
当 Region 属性的值更改时发生。 (继承自 Control。)
在调整控件大小时发生。 (继承自 Control。)
在 RightToLeft 属性值更改时发生。 (继承自 Control。)
用户或代码滚动工作区时发生。 (继承自 ScrollableControl。)
在 Size 属性值更改时发生。 (继承自 Control。)
在控件样式更改时发生。 (继承自 Control。)
SystemColorsChanged
TabIndexChanged
TabStopChanged
TextChanged
Validated
Validating
VisibleChanged
WillChangeField
WillChangeRecord
WillChangeRecordset
WillMove
系统颜色更改时发生。 (继承自 Control。)
在 TabIndex 属性值更改时发生。 (继承自 Control。)
在 TabStop 属性值更改时发生。 (继承自 Control。)
基础结构。 (继承自 UserControl。)
在控件完成验证时发生。 (继承自 Control。)
在控件正在验证时发生。 (继承自 Control。)
在 Visible 属性值更改时发生。 (继承自 Control。)
在 ADODC 控件的 Recordset 中的当前字段更改之前发生。
在 ADODC 控件的 Recordset 中的当前记录更改之前发生。
在 ADODC 控件的 Recordset 更改之前发生。
在 ADODC 控件的 Recordset 的 MoveFirst、MoveNext 或
MoveLast 方法执行之前发生。
Adodc方法
方法名称
Drag
说明
用于控件的开始、结束或取消拖动操作,语法格式:
[Adodc.] Drag action
其中:
action 可选的。是一个常数或数值,如“设置值”中所描述的,它指定要执行的动作。如果省略action,则缺省值为开始拖动对象。
设置值:
常数 值 描述
vbCancel 0 取消拖动操作
vbBeginDrag 1 开始拖动控件
vbEndDrag 2 结束拖放控件
使控件移动,同时也可以改变被移动对象的尺寸,语法格式:
[Adodc.] Move Left[,Top,Width,Height]
其中:
Left 必要的。单精度值,指示控件左边的水平坐标(x-轴)
Top 可选的。单精度值,指示控件顶边的垂直坐标(y-轴)
Width 可选的。单精度值,指示控件新的宽度
Height 可选的。单精度值,指示控件新的高度
强制全部重绘一个控件,语法格式:
[Adodc.] Refresh
Move
Refresh
ZOrder 将指定的控件放置在其图层的z-顺序的前端或后端。语法格式:
[Adodc.] Zorder position
其中:
position 可选的。一个整数,它用以指示控件相对于同一控件其它实例的位置。如果position为0或被省略,则控件定位在Z-顺序前面。如果position为1,则控件定位在Z-顺序后面。
ShowWhatsThis 显示Windows Help所提供的“这是什么”弹出式窗口使用的Help文件中选定的一个主题,语法格式:
[Adodc.] ShowWhatsThis
ADODC属性
属性
(Name)
Adodc控件的名称
获得或设置一个值,决定对象在窗体上的显示位置。取值为:
0 vbAlignNone(无)
1 vbAlignTop(顶部排列)
2 vbAlignBottom(底部排列)
3 vbAlignLeft(左边排列)
4 vbAlignRight(右边排列)
是否用立体效果绘制。取值为:
说明
Align
Appearance
BackColor
BOFAction
CacheSize
Caption
CommandTimeout
0 adFlatBevel(平面)
1 ad3DBevel(立体)
设置背景颜色。可从弹出的调色板选择。
当到达文件开始处的行为。取值为:
0 adDoMove First
1 adStayBOF
获得或设置作为游览集合的缓存来保留的行数
控件的标题
等待命令返回的时间量(单位秒)。
指示命令类型。取值为:
1 adCmdText
CommandType
2 adCmdTable
4 adCmdStoredProc
8 adCmdUnknown
ConnectionString
ConnectionTimeout
CursorLocation
支持连接字符串的OLEDB提供程序(打开属性页--通用)。
在中止前等待打开连接的时间量(单位秒)。
决定时使用服务器端游标还是客户端游标(使用哪个游标引擎) 。取值为:
2 adUseServer
3 adUseClient
设置用于下一级recordset的游标类型。取值为:
CursorType
1 adOpenKeyset
2 adOpenDynamic
3 adOpenStatic
DragIcon
DragMode
该对象在拖动过程中鼠标的图标
该对象的拖动模式。取值为:
0 Manual(手动)
1 Automatic(自动)
用于设定是或对事件产生响应。取值为:
Enabled
True 可用
False 不可用。在执行程序时,该对象用灰色显示,并且不响应任何事件
当到达文件结尾处的行为。取值为:
EOFAction
0 adDoMoveLast
1 adStayEDF
2 adDoAddNew
Font
ForeColor
Height
Index
Left
字型。可从弹出的对话框选择字体,大小和风格
前景颜色。可从弹出的调色板选择。
Adodc控件的高度
在对象数组中的编号
距离容器左边框的距离
获得或设置使用的锁定(并发)类型。取值为:
-1 adLockUnspecified
1 adLockReadOnly
2 adLockPessimistic
3 adLockOptimistic
4 adLockBatchOptimistic
LockType
MaxRecords
当打开时取回的最大记录数
描述当前被打开的连接中的模式。取值为:
0 adModeUnkown
Mode
1 adModeRead
2 adModeWrite
3 adModeReadWrite
4 adModeShareDenyRead
8 adModeShareDenyWrite
12 adModeShareExclusive
16 adModeShareDonyNone
当窗体上的一个活动对象显示一个或多个工具栏时,决定是否显示一个可对齐Negotiate
的控件。取值为:
True
False
控件方向。取值为:
Orientation
Password
RecordSource
Tag
ToolTipText
Top
UserName
Visible
WhatsThisHelpID
Width
0 adHorizontal(水平)
1 adVertical(垂直)
密码-支持密码的OLEDB提供程序。(打开属性页--身份验证)
Recordset源(adCommandText=SQL或者其它命令'语法',adCommandTable=表名称。) (打开属性页--记录源)
存储程序所需的附加数据
设置该对象的提示行
距容器顶部边界的距离
用户名称-支持用户名称的OLEDB提供程序。(打开属性页--身份验证)
设置此对象的可见性。取值为:
True 该对象可见
False 该对象不可见
获得或设置与对象相关联的上下文号
设置该对象的宽度
版权声明:本文标题:ADODC控件介绍及使用(事件.方法.属性) 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1709123689h538279.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论