Sybase数据库是Sybase公司开发的大型数据库产品,一向以高性能和高可靠性而闻名于市场,在我国的应用已是十分广泛。另外,因为Sybase的存储过程可以按行返回记录,对于复杂的查询,可编写存储过程,因为存储过程是预编译了的(除非你要求调用时编译),所以返回结果非常快,而其它有的数据库存储过程是不能返回记录集的(如Oracle,除非采用Oracle提供的OLE Automation方法)
在微软Windows大行其道的今天,友好直观的Windows界面成为用户需要,Sybase的PowerBuilder是提供给开发人员的一个方便快捷的开发工具,但从性能上讲它不是最优的,下面我谈谈怎样利用VB5.0和VB6.0在Sybase For NT数据库上进行开发,VB是MicroSoft公司提供的功能强大的开发工具,它在开发C/S数据库软件方面从综合开发周期和性能上来讲较之其它的开发工具有其优势。
1、配置数据库服务器
①、在NT上安装Sybase数据库,直接运行Setup安装程序,在Windows NT Product Selection Screen对话框中,复选language Moudles,并点击Custom,在弹出对话框中US.English和Chinese一定要选取,这样可很好支持中文。
②、在接口文件配置中,可稍后配置。
2、安装Win9x客户端或Win3x客户端
和服务器安装类似,在Product Set Select 对话框中选取相应产品,即客户端是Win9x选取Windows 95 Products(32-bit versions),客户端是Win3x则选取Windows Products(16-bit versions)。在用SQLEDIT生成接口文件时,注意选取正确的网络协议
3、安装ODBC驱动程序,微软没有为Sybase提供ODBC驱动程序,你可向经销商索取或到网上去“D”。
4、以上工作完成后,下面分别就VB5.0和VB6.0同Sybase服务器的连接和操作作一简单介绍。
在VB5.0中,访问远程数据库的较好方法是通过RDO(当然你也可以用DAO或直接使用ODBC)
两种:DSN连接和无DSN连接,下示列程序均有说明
此处打开的是master数据库,数据库服务器名为WIND,SQL Server 11,ODBC驱动程序是Sybase System 11,如用DSN连接,用控制面板ODBC驱动程序管理器,建立的DSN名是SybDSN
新建工程,在工程菜单中引用Microsoft Remote Data Object 2.0
Public enTest As rdoEnvironment 注释:声明rdo环境对象,为工程级全局变量
Public cnTest As rdoConnection 注释:声明rdo连接对象,为工程级全局变量
注释:最好不设为局部,否则即使断开连接,也将在数据库服务器端中保存连接的缓冲区,将会
注释:占用服务器资源,甚至可能造成服务器的性能降低甚至死锁。
注释:定义记录集变量
Dim rsTest As rdoResultset
注释:连接子程序
Public Function connectSybase() As Boolean
On Error GoTo ErrHandle
Dim strConnect As String
Set enTest = rdoEngine.rdoEnvironments(0)
enTest.UserName = "sa" 注释:用户名
enTest.Password = "password" 注释:口令
注释:通过下句与ODBC数据源进行连接,不需用户选择数据源
Set cnTest = enTest.OpenConnection(dsName:="SybDSN", _
Prompt:=rdDriverCompleteRequired)
注释:注意:如果你不想建立DSN,可采取无DSN连接方法如下:
注释:将上句改为 Set cnTest = enTest.OpenConnection(dsName:="", _
注释: Prompt:=rdDriverNoPrompt, _
注释: Connect:="driver={Sybase System 11};" _
注释: & "srvr=WIND;database=master;")
connectSybase = True
Exit Function
ErrHandle:
connectSybase = False
End Function
Private Sub Form_Load()
Dim strSQL As String
if connectSybase then
strSQL="Select * from sysusers" 注释:strSQL可以是SQL语句(块),存储过程
Set rsTest = cnTest.OpenResultset(strSQL, rdOpenDynamic)
else
msgbox "打开数据库失败"
Exit sub
end if
Do Until rsTest.EOF
Debug.print rstest.fields(0),rstest.field(1)
rsTest.MoveNext
Loop
End Sub
VB6.0的在数据库方面的新特性,使用ADO对象,和OLE DB。微软建议新的数据库工程采用ADO。此处先将ADO,OLE DB作一简介:
ADO使得客户端应用程序能够通过任何OLE DB提供者来访问和操作数据库服务器中的数据。ADO最主要的优点是易于使用、速度快、内存支出少 和磁盘遗迹小。
OLE DB是新的底层接口。它定义了一种通用的数据访问范例。也就是说,OLE DB并不局限于ISAM、Jet甚至关系数据源,但是它能够处理任何 类型的数据,而不考虑它们的格式和存储方法。由于接口比较复杂,不能在Visual Basic中直接访问OLE DB。ADO封装并且实现了OLE DB的所有功能。 VB 6.0对ADO有完整的支持,可以通过ADO、OLE DB的接口,调整OLE DB的灵活性。甚至可以在VB中创建自己的OLE DB提供程序。
ADO的另一个功能是远程数据访问(RDS),能够通过一个往返传输将数据从服务器移动到客户端应用程序或Web页中,然后在客户端对数据进行操作,最后将更新数据返回服务器。RDS现在的版本是RDS 1.5。RDS已与ADO编程模块合并以简化客户端数据的远程调用。
有关ADO的更详细信息,读者可查阅MSDN中的相关文档。
VB6.0也可通过RDO和Sybase数据库进行连接,连接方法和VB5.0一样,但ADO较RDO有更大的优越性。
VB6.0用ADO连接Sybase数据库采用OLE DB For ODBC Driver
新建工程,在工程菜单中引用Microsoft ActiveX Data Object 2.0 Library
Public cnTest As New ADODB.Connection 注释:声明ADO连接对象,为工程级全局变量
注释:连接子程序
Public Function connectSybase() As Boolean
On Error GoTo ErrHandle
Dim strConnect As String
注释:通过下句与ODBC数据源进行连接,不需用户选择数据源
strConnect = "Provider=MSDASQL.1;Persist Security Info=False;" _
& " Extended Properties=注释:DSN=chs;SRVR=WIND;DB=master;UID=sa;PWD=注释:"
cnTest.Open strConnect
注释:注意:如果你不想建立DSN,可采取无DSN连接方法如下:
注释:将上句改为 strConnect="Provider=MSDASQL.1;DRIVER={Sybase System 11}; " _
注释: & " Persist Security Info=False;DSN=;" _
& " SRVR=WIND;DB=master;UID=sa;PWD=password"
注释:Persist Security是否采用集成安全机制
connectSybase = True
Exit Function
ErrHandle:
connectSybase = False
End Function
Private Sub Form_Load()
Dim rsTest As New ADODB.Recordset
Dim strSQL As String
If connectSybase Then
strSQL = "Select * from sysusers" 注释:strSQL可以是SQL语句(块),存储过程
rsTest.CursorLocation = adUseClient
rsTest.Open strSQL, cnTest 注释:cnTest为打开的活动的连接
Else
MsgBox "打开数据库失败"
Exit Sub
End If
Do Until rsTest.EOF
Debug.Print rsTest.Fields(0), rsTest.Fields(1)
rsTest.MoveNext
Loop
End Sub
以上只谈了和Sybase数据库的连接及简单的查询,其它操作对程序员来讲和其它数据库的编写大致相同,读者可自行编写复杂的SQL语句对数据库进行增、删、改等操作。
-
vb教程之怎样使用VB开发基于Sybase的C/S软件
本栏文章均来自于互联网,版权归原作者和各发布网站所有,本站收集这些文章仅供学习参考之用。任何人都不能将这些文章用于商业或者其他目的。
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
SQL Server -- 解决存储过程传入参数作为s
JavaScript判断两个数组相等的四类方法
js如何操作video标签
React实战--利用甘特图和看板,强化Paas平
【记录】正则替换的偏方
前端下载 Blob 类型整理
抽象语法树AST必知必会
关于JS定时器的整理
JS中使用Promise.all控制所有的异步请求都完
js中字符串的方法
import-local执行流程与node模块路径解析流程