为了建立VB和Oracle的链接,首先建立ODBC数据源,方法如下:
打开控制面板—性能和维护—管理工具—数据源(ODBC),如图1 所示:
图 1
切换到系统DSN选项卡,点击添加按钮,如图2 所示:
图 2
出现创建新数据源对话框,选择Microsoft ODBC for Oracle点击完成,如图3 所示:
图 3
出现Microsoft ODBC for Oracle Setup对话框,输入以下的设置,完成数据源的创建,如图4所示:
图 4
至此,完成了新数据源的创建,下面实现VB和Oracle的链接,有以下几种方法均可实现:
方案一
首先在Oracle中建立一些数据并保存,查询时存在下面的数据,如图5所示:
图 5
新建一个工程,双击Data控件,添加到表空间,如图6所示;
图 6
在Data控件上点击鼠标右键,点击属性窗口,如图7所示;
图 7
设置属性窗口的属性如图8所示;
图 8
在窗体上添加TextBox控件,三个TextBox控件的属性如图9所示:
图 9
完成后,窗口的界面如图10所示:
点击运行按钮,如图11所示,完成了VB和Oracle的链接,实现了用VB从Oracle中读取数据。
图 图 11
方案二
通过ADODC控件实现VB和Oracle数据库的链接,具体方法如下:
新建工程,点击菜单栏里面的工程/部件按钮,出现如图12所示的部件的控件选项卡,选中如图所示的选项,点击确定按钮。
图 12
完成上面的操作步骤后,ADODC控件添加到左边的工具栏里,双击该控件,在表空间中自动出现ADODC控件,如图13所示:
图 13
在ADODC控件上单击鼠标右键,选择ADODC属性,如图14所示:
图 14
在属性页里面设置,使用名称为misdb 的ODBC数据源,如图15所示:
图 15
切换到身份验证选项卡,输入用户名称和密码,如图16所示:
切换到记录源选项卡,选择命令类型和表的名称,如图 17所示:
图 16 图 17
在窗体上添加三个TextBox控件,分别设置属性,如图18所示:
图 18
完成以上的操作步骤,点击运行按钮,出现下面的结果,如图19所示:
图 19
方案三
比较灵活的方式是通过引用ADODC控件,编程实现VB与Oracle的链接,具体方法如下:
新建工程,点击菜单工具栏里面的工程/引用,跳出引用对话框,选中途中选项如图20所示:
图 20
设计如图21所示的窗体;
图 21
设置窗体上控件的属性,如图22所示:
图 22
设置窗体的VB代码如下:
Option Explicit
'定义RS为ADODC对象的记录集
Dim RS As New ADODB.Recordset
'定义conn为ADODC对象的连接
Private conn As ADODB.Connection
Private Sub CmdExit_Click()
conn.Close
Set conn = Nothing
Unload Me
End Sub
Private Sub CmdFirst_Click()
RS.MoveFirst
RS.Update
End Sub
Private Sub CmdLast_Click()
RS.MoveLast
RS.Update
End Sub
Private Sub CmdNext_Click()
RS.MoveNext
If RS.EOF Then
RS.MoveLast
RS.Update
End If
End Sub
Private Sub CmdPrevious_Click()
RS.MovePrevious
If RS.BOF Then
RS.MoveFirst
RS.Update
End If
End Sub
'窗体运行时的初始化过程
Private Sub Form_Load()
'定义connStr为连接字符串
Dim connStr As String
'定义Cmd为ADODC命令字符串
Dim Cmd As New ADODB.Command
Set conn = New ADODB.Connection
connStr = " Provider = OraOLEDB.Oracle.1;DSN =misdb;uid = system; pwd = 19870326cc;"
conn.ConnectionString = connStr
'按照conn的内容连接数据库
conn.Open "DSN=misdb;uid = system; pwd = 19870326cc;"
'查询表cc1的内容
With Cmd
.ActiveConnection = conn
.CommandType = adCmdTable
.CommandText = "cc1"
End With
'将表cc1的内容送记录集RS
With RS
.CursorLocation = adUseClient
.CursorType = adOpenStatic
.LockType = adLockPessimistic
.Open Cmd
End With
'定义5个文本框数据源为RS
Set Text1.DataSource = RS
Set Text2.DataSource = RS
Set Text3.DataSource = RS
Set Text4.DataSource = RS
Set Text5.DataSource = RS
'定义5个文本框显示的字段
Text1.DataField = "cc1name"
Text2.DataField = "cc1length"
Text3.DataField = "cc1diameter"
Text4.DataField = "cc1screw"
Text5.DataField = "cc1tooth"
End Sub
还需要完成在Oracle中建立相应的表,插入相关的数据,如图23所示:
图 23
相应的代码如下:
SQL> create table cc1
2 (cc1name varchar2(25),
3 cc1length varchar2(10),
4 cc1diameter varchar2(10),
5 cc1screw varchar2(15),
6 cc1tooth varchar2(10));
Table created.
SQL> insert into cc1
2 values('直柄球头立铣刀','100','20','35','3');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into cc1
2 values('锥柄普通立铣刀','150','30','30','2');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into cc1
2 values('削平柄普通立铣刀','100','25','35','3');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into cc1
2 values ('直柄过中心立铣刀','130','35','30','2');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into cc1
2 values ('高速球头立铣刀','110','20','35','3');
1 row created.
SQL> commit;
Commit complete.
点击运行 ,运行结果如图24所示:
图 24