'前言:<span style="font-family: Arial, Helvetica, sans-serif;"> VB6.0对数据库的操作方法很多,对于初学者来说也比较乱.用控件操作数据库是很简洁的,但相对的局限性也变大了.总结了相对简介而使用的几个功能希望大家喜欢.</span>
</pre><pre name="code" class="vb">
</pre><pre name="code" class="vb">
</pre><pre name="code" class="vb">
'引用"Microsoft ActiveX Data Objects 6.0 Library", '这个东西的简称就是ADO,它是VB6数据库最核心的 '库,在VB6中你可以看到它的各种版本,从2.0版到 '我们还要引用对象库"Microsoft ADO Ext 6.0. For DDL Security",简称为ADOX, '其库文件名为是:Msadox.dll。ADOX是对 ADO 对象和编程模型的扩展,它将 ADO '扩展为包括创建、修改和删除模式对象,如表格和过程。它还包括安全对象,用于 ' Catalog 包含描述数据源模式目录的集合? ' Group 表示在安全数据库内有访问权限的组账号? ' Key 表示数据库表中的主关键字?外部关键字或唯一关键字? ' Table 表示数据库表,包括列、索引和关键字。 ' User 表示在安全数据库内具有访问权限的用户账号? 'Dim Rst As New ADODB.Recordset Private Sub Create_Database_Click(Index As Integer) '建库 这里建立的mdb文件,用VB自带的ACCESS是无法打开的.需要下载Access2000打开mdb文件,观察数据库的删建情况. Set cat = New ADOX.Catalog '当前目录下建立名为 newdata的Access数据库 'cat.Create ("Provider=Microsoft.jet.oledb.4.0;DATA SOURCE=" + App.Path & "\newdata.mdb" + ";") cat.Create ("provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;") Private Sub Delete_Database_Click() '在模块中引用Public Declare Function DeleteFile Lib "kernel32" Alias "DeleteFileA" (ByVal lpFileName As String) As Long 'API 删除函数 'DeleteFile "C:\Users\wangqi\Desktop\数据库\newdata.mdb" '绝对路径 DeleteFile "" & App.Path & "/newdata.mdb" '如果你用绝对路径写程序,当你的程序用在其他电脑上的时候,路径就变了。所以写程序尽量写相对路径,方便移植。 Private Sub Create_Table_Click() Dim cn As New ADODB.Connection '用ADODB需要引用Microsoft ActiveX Data Objects 6.0 Library.之前我们已经引用过了。 cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:数据库的名字 cn.Execute "create table [" & real_time & "] ([dat] DATE,[x_temperature] integer,[y_temperature] integer,[x_weight] integer,[y_weight] integer);" '这里就可以用now函数做表的名子 'cb.Execute "create index index_dat on [" & Now() & "] (dat)" '这个写法也ok cn.Execute "create index index_dat on [" & real_time & "] (dat)" cn.Execute "create index index_x_temperature on [" & real_time & "] (x_temperature)" cn.Execute "create index index_y_temperature on [" & real_time & "] (y_temperature)" cn.Execute "create index index_x_weight on [" & real_time & "] (x_weight)" cn.Execute "create index index_y_weight on [" & real_time & "] (y_weight)" Private Sub Delete_Table_Click() Dim cn As New ADODB.Connection cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" cn.Execute "drop table [" & real_time & "];" '[要删除的表名] Private Sub Create_Row_Click() Dim Rst As New ADODB.Recordset 'Rst为记录集对象实例 Dim cn As New ADODB.Connection cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:数据库的名字 str = "select *from [" & real_time & "] " '记录集的打开方法:Recordset.Open Source, ActiveConnection, CursorType, LockType, Options ' source可选项,指明了所打开的记录源信息.可以使合法的命令,对象变量名,SQL语句,表明,存储过程调用,活保存记录集的文件名. ' ActiveConnection可选项,合法的已打开的Cnnection对象的变量名,或者是包含ConnectionString参数的字符串 ' CursorType可选项,确定打开记录集对象使用的指针类型 ' LockType可选项,确定打开记录集对象使用的锁定类型 ' AdOpenForwardOnly = 0 只能用MoveNext读取,并且打开的同事建立的数据库的备份,不能即时体现数据库记录状态,比如记录的编辑和增减. ' AdOpenKeyset = 1 可上下滚动的游标,给打开的记录创建了一个关键字列表,类似记录集的描述,访问的时候才去去的数据值,就是说 ' 可以即时看到修改信息,但是不能即时的到数据是否删除的信息,因为这个关键字列表是事先初始化好的. ' AdOpenDynamic = 2 完全可以滚动,可得到数据的最新状态,执行效率也会有所降低(常用). ' AdOpenStatic = 3 完全可以滚动,但是和adOpenKeyset类似,它先将数据库备份文件之后进行操作.可以断开数据库连接后继续使用 ' AdLockReadOnly = 1 只读锁,不能修改记录 ' AdLockPessimistic = 2 悲观锁,操作者打开之后立即上锁,知道修改完成或者放弃修改位置,此时其他人无法编辑. ' AdLockOptimisitic = 3 乐观锁,当记录将要被更新的时候才开始上锁,但是不能保证在提交修改之前是否有人改动过. ' AdLockBatchOptimistic = 4 批量乐观锁,SOL server中要使用它,必须打开一个可上下滚动的游标,如AdOpenKeyset,AdOpenStatic. 'Rst.AddNew ([FieldList],[values]) FieldList为一个字段名,或是一个字段数组 '建行Form7.Adodc1.Recordset.AddNew ' Adodc1.Refresh Private Sub Delet_Row_Click() 'Recordset.Delete AffectRecords '其中的,AffectRecords参数是确定Delete方法作用的方式的,它的取值如下: ' adAffectCurrent 只删除当前的记录 ' adAffectGroup 删除符合Filter属性设置的那些记录.为了一次能删除一组数据,应设置Filter属性 'MoveFirst,MoveLast,MoveNext,MovePrevious方法,移动到指定Recordset对象中的第一个、最后一个、下一个或上一个记录并使该记录成为当前记录. Dim Rst As New ADODB.Recordset 'Rst为记录集对象实例 Dim cn As New ADODB.Connection cn.ConnectionString = "provider=microsoft.jet.oledb.4.0;data source=" & App.Path & "/newdata.mdb;persist security info=false" 'newdata:数据库的名字 str = "select *from [" & real_time & "] " Rst.MoveLast '将指针指向最后一行记录进行删除.如果没有这一指令,删除的将是第一行
|