记录。在RecordSet对象中有一个默认的指针,用户程序可以通过这个默认指针的移动来访问记录集中的单个记录。RecordSet对象封装了一组可以访问列级数据的Field对象。
RecordSet对象的方法: 1.AddNew方法
AddNew方法为可更新的Recordset对象创建一个新记录.AddNew方法将添加一条新的空记录,并且定位在该记录上,用户可以在被绑定的数据感知控件中输入修改数据.新增加的记录的值为指定的默认值,如果没有指定值,则为Null.例如: 输入完新记录后,要使用I.1pdate方法才能将数据保存到数据库中,在使用Update方法前,数据库中的数据不会发生改变,只有执行Update方法或通过Data控件移动当前记录时,记录才从缓冲区存储到数据库文件中.使用Update方法后,新记录仍保持为当前记录.
Data1.Recordset.AddNew 2.Delete方法
Delete方法可将当前记录从记录集中删除. 3.Edit方法
要编辑修改数据库的记录,首先使要编辑的记录成为当前记录,然后使用Edit方法修改记录内容,使用Edit方法后,移动记录或者使用Update方法把数据存入到数据库中.
4.Move方法
可以使用各种:Move方法移动记录,使不同的记录成为当前记录.有5种方法: MoveFirst.移动到记录集的第一条记录. Move[,ash移动到记录集的最好一条记录. MoveNext:移动到记录集的下一条记录.
MovePrevious:移动到记录集的上一条记录.
Move:可以使用Move方法向前或向后移动若干条记录.语法为:
Recordset.MoveNumRecords.Start
其中NumRecords设置向前或向后移动记录的行数,正数表示向后移动NumRecords行,负数表示向前移动NumRecords行.Start参数为可选,表示基准位置,缺省时为当前记录的位置.可以把当前记录集的Bookmark作为基准位置.
5.Find和Seek方法
要查找一个符合条件的记录,在Table型的记录集中可以使用Seek方法,在其他类型的记录集中可以使用Find方法.
共有4种Find方法:FindFirst,Find[,ast,FindNext和:FindPrevious方法.使用Seek方法要用到索引,而且只能用于Table类型的记录集.
6.I_Ipdate和CancelIJpdate方法
Update方法保存对Recordset对象的当前记录所做的更改.使用IJpdate方法可以保存自从调用.AddNew方法,或自从现有记录的任何字段值发生更改(使用Edit方法)之后,对Recordset对象的当前记录所作的所有更改.调用LIpdate方法后当前记录仍为当前状态.
如果希望取消对当前记录所做的所有更改或者放弃新添加的记录,则必须调用CancelUpdate方法.调用CanceltJpdate时,更改缓存被重置为空,并使用原来的数据对被绑定的数据感知控件进行刷新.
它们的语法为: 7.Close方法
使用Close方法可以关闭:Recordset对象以便释放所有关联的系统资源.关闭对象并非是将它从内存中删除,可以更改它的属性设置并且在此之后再次打开.
vb神童教程(续)--vb adodb Connection对象简介
Connection对象介绍
Connection对象支持许多属性,可以利用这些属性来操作当前的连接状态或者获取一些基本的Connection对象的信息.有一些属性是只读的,而另一些属性是可读写的.
1.Attributes属性 Attributes属性设置或返回一个整型值,它用来指示对象的一项或多项特性.对于Connection对象,Attributes属性为读/写,并且其值可能为以下任意一个或多个XactAttributeEnum值的和(默认为零).
▲AdXactCommitRetaining:执行保留的提交,即通过自动调用CommitTrans启动新事务。并非所有提供者都支持该常量。
▲AdXactAbortRetaining:执行保留的中上,即通过自动调用RollbackTrans启动新事务。并非所有提供者都支持该常量。
2.CommandTimeout属性
CommandTimeout属性设置或返回长整型值,该值指示等待命令执行的时间(单位为秒)。默许值为30,指示在终止尝试和产生错误之前执行命令期间需要等待的时间。使用Connection对象或Command上的CommandTimeout属性,允许由于网络拥塞或服务器负载过重产生的延迟而取消Execute方法调用。如果在CommandTimeout属性中设置的时间间隔内没有完成命令执行,将产生错误,然后ADO将取消该命令。如果将该属性设置为零,ADO将无限期等待直到命令执行完毕。
3.ConnectionString属性
ConnectionString属性设置或返回字符串值,这个字符串值包含用来建立到数据源的连接的信息.使用ConnectionString属性,通过传递包含一系列由分号分隔的argument=value语句的详细连接字符串可指定数据源。ADO支持ConnectionString属性的四个参数,任何其他参数将直接传递到提供者而不经过ADO处理。
▲Provider参数:指定用来连接的提供者名称。
▲File Name参数:指定包含预先设置连接信息的特定提供者的文件名称。 ▲Remote Provider参数:指定打开客户端连接时使用的提供者名称。 ▲Remote Server参数:指定打开客户端连接时使用的服务器的路径名称。 例:使用Connection对象的ConnectionString属性的示例代码 Public Sub ConnectionString_Example() Dim connection1 As ADODB.Connection Dim connection2 As ADODB.Connection Dim connection3 As ADODB.connection Dim connection4 As ADODB.Connection '不使用数据源名(DSN)打开连接 Set connection1=New ADODB.Connection
connection1.ConnectionString=\\connection1.ConnectionTimeout=30 connection1.Open
'使用DSN和ODBC标记打开连接。
Set connection2=New ADODB.Connection
connection2.ConnectionString=\connection2.Open
'使用DSN和OLE DB标记打开连接。
Set connection3=New ADODB.Connection
connection3.ConnectionString=\connection3.Open
'使用DSN和单个参数而非连接字符串打开连接。 Set connection4=New ADODB.Connection connection4.Open \
End Sub
注意:如果没有复选“引用”对话框中的Data Access Object,程序会出错。在上面的程序段中,先定义了4个Connection对象的变量。这4个变量分别对应于4种不同的连接方式。语句Set connection1=New ADODB.Connection是创建一个新的Connection对象,然后再调用Connection对象的Open方法来打开数据库连接。
4.ConnectionTimeout属性
ConnectionTimeout属性设置或返回指示等待连接打开的时间的长整型值(单位为秒)。其默认值为15,指示在终止尝试和产生错误前建立连接期间所等待的时间。如果由于网络拥塞或服务器负载过重导致的延迟使得必须放弃连接尝试时,请使用Connection对象的ConnectionTimeout属性。如果打开连接前所经过的时间超过ConnectionTimeout属性上设置的时间,将产生错误并且ADO将取消该尝试。如果将该属性设置为零,ADO将无限等待直到连接打开。
5.DefaultDatabase属性
DefaultDatabase属性可设置或返回指定Connection对象上默认数据库的名称。 例:使用Connection对象的DefaultDababase属性的示例代码。 Public Sub DefaultDatabase_Example() Dim connection1 As ADODB.Connection Set connection1=New ADODB.Connection
connection1.ConnectionString=\\
cnn1.Open
cnn1.DefaultDatabase=\End Sub
6.IsolationLevel属性
IsolationLevel属性指出Connection对象如何处理对象。
7.Mode属性
Mode属性设置或返回以下某个ConnectModeEnum的值,指示用于更改在Connection中的数据的可用权限。
▲AdModeUnknown:默认值。表明权限尚未设置或无法确定。
▲AdModeRead:表明权限为只读。 ▲AdModeWrite:表明权限为只写。
▲AdModeReadWrite:表明权限为读/写。
▲AdModeShareDenyRead:防止其他用户使用读权限打开连接。 ▲AdModeShareDenyWrite:防止其他用户使用写权限打开连接。 ▲AdModeShareExclusive:防止其他用户打开连接。
▲AdModeShareDenyNone:防止其他用户使用任何权限打开连接。 8.Provider属性
Provider属性指出当前数据提供者的名字,或者是使用Open()方法时没有指定名字的情况下所使用的提供者名。但是,调用Open方法时如果在多处指定提供者可能会产生无法预料的后果。如果没有指定提供者,该属性将默认为MSDASQL(Microsoft OLE DB Provider for ODBC)。
例:使用Connection对象的Provider属性的示例代码。
Public Sub Provider_Example()
Dim connection1 As ADODB.Connection
Set connection1=New ADODB.Connection
connection1.Provider=\connection1.Open\End Sub 9.State属性
State属性对所有可应用对象都可用,它用来说明其对象状态是打开或关闭的。可以随时使用State属性来确定指定对象的当前状态。该属性是只读的,并返回下列常量之一的长整型值。
▲AdStateClosed:默认值,指示对象是关闭的。
▲AdStateOpen:指示对象是打开的。
▲AdStateConnecting:指示Recordset对象正在连接。 ▲AdStateExecuting:指示Recordset对象正在执行命令。 ▲AdStateFetching:指示Recordset对象的行正在被读取。 例:使用Connection对象的State属性的示例代码。 Public Sub State_Example()
Dim connection1 As ADODB.Connection Dim statestring AS String
Set connection1=New ADODB.Connection
connection1.ConnectionString=\connection1.Open
Select Case connection1.State case adStateClosed
statestring=\case adStateOpen
statestring=\End Select
'显示连接的状态。
MsgBox \End Sub
Connection对象的方法
Connection对象的方法用来管理事务、执行命令、打开和关闭连接。需注意的是,ADO对象所支持的方法是独立于当前所使用的数据源的。例如一个OLE DB数据源不必支持OLE DB规范的全部功能。
1.BeginTrans方法
BeginTrans方法开始一个连接到数据源的新事务,即启动一个新的事务。与之相应的还
有CommitTrans和RollbackTrans方法。CommitTrans保存所有的更改并结束当前事务,它也可以用来启动一个新的事务。RollbackTrans取消当前事务中所做的任何更改并结束事务,同CommitTrans类似,它也可以用来启动一个新的事务。它们的语法为:
Object.BeginTrans Object.CommitTrans
Object.RollbackTrans
需注意,并非所有提供者都支持事务。需验证提供者定义的属性Transaction DDL是否出现在Connection对象的Properties集合中,如果在则表示提供者支持事务。如果提供者不支持事务,调用其中的某个方法将返回错误。一旦调用了BeginTrans方法,在调用CommitTrans或RollbackTrans结束事务之前提供者将不再立即提交所做的任何更改。
例:使用Connection对象的BeginTrans、CommitTrans和RollbackTrans方法的示例代码。
Public Sub BegiTrans_Example() Dim cnn1 As ADODB.Connection Dim rstTitles As ADODB.Recordset Dim strCnn As String Dim strTitle As String Dim strMessage As String '打开连接。
strCnn=\Set cnn1=New ADODB.Connection cnn1.Open strCnn '打开Titles表
Set rstTitles=New ADODB.Recordset rstTitles.CursorType=adOpenDynamic rstTitles.LockType=adLockPessimistic rstTitles.Open \
rstTitles.MoveFirst cnn1.BeginTrans
'在记录集中循环并询问是否想要更改指定标题的类型. Do Until rstTitles.EOF
If Trim(rstTitles!Type)=\
strTitle=rstTitles!Title
strMessage=\ '更改指定雇员的标题
If MsgBox(strMessage,vbYesNo)=vbYes Then rsttitles!Type=\ rstTitles.Update End If Enf If
rstTitles.MoveNext
Loop
'询问用户是否想提交以上所做的全部更改
If MsgBox(\esNo)=vbYes Then