VB6链接Oracle常用数据库操作类模块
(原创、源码、说明)
笔者信奉的编程原则是“拿来就用”,并且已经将数据库常用的相关操作如“万能查询”、“导出Excel”等类模块在百度文库先后发布了,本次主要说一说其他常用的数据库操作类模块的封装。通过如下的类模块可以大大简化数据库编程中的重复操作。
本文将数据库添加记录、修改记录、删除记录、添加DataGrid列标题、添加数据到ComboBox、记录是否存在、记录集显示在
DataGrid、设置起止日期等重复出现的数据库操作的类模块源码共大家学习研究。
欢迎对本文及笔者文库内的其他内容与笔者进行交流。 一、前期准备工作
前期准备工作主要为引用ADO动态链接库及设置标准模块。引用ADO动态链接库本文就不赘述了。主要说下我所使用的标准模块,这在我的类模块中经常使用。源码如下:
Public Function Cnn() As ADODB.Connection Set Cnn = New ADODB.Connection
Cnn.Open \ID=bzk22;Password=zxcvbn;Data Source=myzsyy\
End Function
Public Function cnStr() As String
cnStr = \ID=bzk22;Password=zxcvbn;Data Source=myzsyy\
End Function
上述源码是放在标准模块中的,用于经常用到的数据库链接操作,读者可以根据自己的实际情况更改数据库的用户名及密码。
二、常用数据库操作类模块 类模块及其名称如下:
(一)添加记录
使用该类模块请注意:参数顺序必须与数据库字段顺序一致,否则容易将错误数据添加到其他列。
1、类模块源码
类模块名称:RSDataAdd
Public tableName As String
Public Sub RecordAdd(ParamArray P()) Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset
rs.Open \
adLockOptimistic
rs.AddNew
Dim i As Integer
For i = 0 To UBound(P) rs.Fields(i) = P(i) Next i rs.UPDATE rs.Close
MsgBox \数据添加成功!\添加记录\End Sub
2、操作代码
Private Sub Command7_Click() Dim myAdd As New RSDataAdd myAdd.tableName = \
Call myAdd.RecordAdd(Text3.Text, Text4.Text, Text5.Text,
DTPicker3.Value)
End Sub
(二)修改记录
如果是用过上述添加代码操作,只需将相应的参数复制过来放到本函数参数里即可。因为除了第一个检索字段外,顺序都是一样的。
1、类模块源码
类模块名称:RSUpdate
Public tableName As String '指定将要修改记录的表名 Public editField As String '指定将要修改记录的字段名
Public willEdit As String '指定内容检索将要修改的记录
Public Sub RecordUpdate(ParamArray P()) Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset
rs.Open \
& willEdit & \
Dim i As Integer
For i = 0 To UBound(P) rs.Fields(i + 1) = P(i) Next i rs.UPDATE rs.Close
MsgBox \数据修改成功!\修改记录\End Sub
2、操作代码
Private Sub Command8_Click() Dim myUpdate As New RSUpdate myUpdate.tableName = \ myUpdate.editField = \ myUpdate.willEdit = Text3.Text
Call myUpdate.RecordUpdate(Text4.Text, Text5.Text, DTPicker3.Value) End Sub
(三)添加DataGrid列标题
由于在做界面时已经将数据库中字段名字标示出,所以不用每次都修改DataGrid的列明,只需将相应的列明的标签的标题添加到列名称里即可。使用该类模块请注意:DataGrid必须编辑,然后追加足够的列,否则出现“下标越界”错误。
1、类模块源码
类模块名称:AddGridColName
Public GridWillName As DataGrid
Public Sub AddColName(ParamArray P()) Dim i As Integer
For i = 0 To UBound(P)
GridWillName.Columns(i).Caption = P(i) Next End Sub
2、操作代码
Private Sub Command6_Click()
Dim myGridAdd As New AddGridColName Set myGridAdd.GridWillName = DataGrid1
Call myGridAdd.AddColName(Label1.Caption, Label3.Caption,
Label2.Caption)
End Sub
(四)添加数据到ComboBox
将经常出现的选项添加到ComboBox中简化最终用户操作。每次使用只需添写三个参数,两行代码搞定。
1、类模块源码
类模块名称:ComboAdd
Public Sub dataAdd(ByVal tableName As String, ByVal FieldName As String,
ByVal addCombo As ComboBox)
Dim rs As ADODB.Recordset Set rs = New ADODB.Recordset Dim sqlStr As String
sqlStr = \
order by \
rs.Open sqlStr, Cnn, adOpenKeyset, adLockOptimistic On Error Resume Next Do
addCombo.AddItem rs.Fields(0) rs.MoveNext Loop Until rs.EOF rs.Close End Sub
2、操作代码
Private Sub Command3_Click() Dim myCombo As New ComboAdd
Call myCombo.dataAdd(\End Sub
(五)删除记录、记录是否存在
经常用到删除记录的情况使用该类模块。已经判断了要删除的内容是否为空和删除的记录是否存在。
1、类模块源码
类模块名称:DataDelete
Public Sub dataDelete(ByVal tableName As String, ByVal FieldName As
String, ByVal WillDelete As String)
'判断要删除的内容是否为空 If WillDelete = \
MsgBox (\未选择要删除的记录!\ Exit Sub End If
'判断要删除的记录是否存在
Dim ifIsExist As New DataIsExsit
If ifIsExist.isExsit(tableName, FieldName, WillDelete) = False Then MsgBox (\该记录不存在!\ Exit Sub End If
'确认后删除记录
If MsgBox(\您确实要删除记录吗?\删除记录\
Then
Dim sqlStr As String
sqlStr = \
& WillDelete & \
Cnn.Execute (sqlStr)
MsgBox \数据删除成功!\删除记录\ Cnn.Close End If End Sub
2、操作代码
Private Sub Command1_Click() Dim myde As New dataDelete
Call myde.dataDelete(\End Sub
(六)记录集显示在DataGrid
该类模块经常用在Form_Load事件中,用于加载数据表内容。如果数据表较为庞大,不建议使用此方法。同时该模块未对打开的链接进行关闭。请注意自行关闭数据库链接。