分享
 
 
 

怎样使用VB开发基于Sybase的C/S软件

王朝厨房·作者佚名  2007-01-04
窄屏简体版  字體: |||超大  

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语句对数据库进行增、删、改等操作。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有