当前位置: 网学 > 编程文档 > VB > 正文

语言创新 VB 6.0与大型数据库的无“数据源”连接

来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/16
下载{$ArticleTitle}原创论文样式
ver;”

+ “DSN=;”

+ “databasename=dataall;”

+ “databasefile=d:\data\;”

+ “UID=dba;”

+ “PWD=killer”

应用实例

下面以Sybase 11.9.2为例,编制一个简单的工作人员管理程序,介绍ADO的具体实现方法和步骤。数据库名称为Workerdb,只包括一个表(Worker),其结构如下:

字段名称    宽度       注释

code nchar(4) 代号

name char(8) 姓名

…… …… ……

首先安装ADO,在VB的“工程”/“引用”对话框中选择“ActiveX Data Object 2. 5 Library”(ADODB)。其中“ADO Recordset 2. 5 Library”是一个客户端的版本(ADOR),因为不需要Connection对象来建立与远程数据源的联系,所以ADOR对于客户端的数据访问来说已经足够了。 下面是部分主要代码:

1. 处理代码

’在工程菜单中引用Microsoft ActiveX Data Object 2. 5 Library

’声明ADO连接对象为工程级全局变量

Public cndbase As New ADODB.Connection

……

’自定义连接数据库函数

Public Function ConnectDbase(StrConnect As String) As Boolean

On Error GoTo ErrHandle

cndbase.ConnectionString = StrConnect

cndbase.Open

cndbase.CursorLocation = adUseClient

ConnectDbase = True

Exit Function

ErrHandle:

ConnectDbase = False

End Function

Private Sub Form_Load()

……

输入 VarServer ’服务名称

VarDbase ’数据库名称

VarUser ’用户名称

VarPassword ’用户口令

……

’连接数据库,采取无DSN连接方法

StrConnect = “Provider=MSDASQL;”

+“Driver={” & VarDriver &“};”

+“SRVR=” & VarServer & “;”

+“DB=” & VarDbase & “;”

+“DSN=;”

+“UID=” & VarUser & “;”

+“PWD=” & VarPassword & “;”

+ “Persist Security Info=False” ’不采用集成安全机制

if ConnectDbase(StrConnect) Then

Exit Sub

else

myexit = MsgBox(“数据库连接失败!请检查连接设置信息。”, vbOKOnly, “错误提示:”)

Unload me

endif

ErrHand:

myexit = MsgBox(“错误程序:” & Err. Source & Chr(10) & “错误代码:” & Err. Number & Chr(10) & “错误信息:” & Err.Description, VbAbortRetryIgnore, “错误提示:”)

If myexit = 3 Then

Err.Clear

Unload Me

Else

If myexit = 4 Then

Err.Clear

Resume

Else

Err.Clear

Resume Next

End If

End If

End Sub

Private Sub Form_Unload()

……

cndbase.Close

Set cndbase = Nothing

End Sub

2. 建表

codbase.CommandText=“{call CREATABLE (?) }”

codbase.CommandType = adCmdText

codbase.Name = “CREATABLE”

’设定OutPut的参数

Set param = codbase.CreateParameter(“flag”, adInteger, adParamOutput)

codbase. Parameters. Append param

Set codbase. ActiveConnection = cndbase

codbase. Execute

If codbase. Parameters(0) = 0 Then

myexit = MsgBox(“建表成功!”, vbOKOnly, “程序提示:”)

Else

myexit = MsgBox(“建表失败!”, vbOKOnly, “错误提示:”)

Endif

……

3. 修改

rsdbase. Open“worker”,cndbase,adOpenDynamic,adLockPessimistic,adCmdTable

rsdbase. MoveFirst

cndbase. BeginTrans

’在记录集中进行循环更改

Do Until rsdbase.EOF

’增加20元职务代码为1的人员的工资

If rsdbase! duty = 1 Then

rsdbase! salary = rsdbase! salary + 20

End If

rsdbase. MoveNext

Loop

rsdbase.UpdateBatch

……

4. 统计

StrSQL = “Select avg(salary), sum(salary) from worker”

rsdbase. CursorLocation = adUseClient

rsdbase. Open StrSQL,cndbase

salaryavg = rsdbase(0) ’平均工

网学推荐

免费论文

原创论文

浏览:
设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
湘ICP备09003080号