分享
 
 
 

通过三层结构模型远程访问ACCESS数据库

王朝vb·作者佚名  2006-01-08
窄屏简体版  字體: |||超大  

AUTHOR:jyu1221(天同)

QQ : 19632995

MSN : jyu1108@hotmail.com

EMAIL : jyu1221@163.net

大家都知道,如果把ACCESS数据库直接放在服务器上,客户端通过文件访问方式来存取数据,这样效率就太低了。

为了解决这个问题,现通过三层结构模型的方式来实现ACCESS的数据库的访问。这里的ACCESS数据库也可以换成任何

一种关系性数据库,具体结构如下:

客户程序 | 中间层 | 数据库

| |

TCP/IP

应用程序 <--> RAccessClient <----------------------->RAccessService <-----ADO,RDO,DAO -----> ACCESS

客户端接口 服务程序

| |

| |

| |

| |

|--------------在原来的基础上加了一层---------------- |

客户端接口采用VB中的类来实现,程序中使用了3个类,CConnection, CRecordset, CTcpIp,其中CTcpIp是关于访问网络方面的,与用户基本上没有直接关系,和用户有关的是CConnection,CRecordset这2个类,它们分别相当于ADO中ADODB.Connection和ADODB.Recordset。有了这2个接口类,就可以用来实现大部分的数据库操作,具体用法如下:

1.定义对象

Dim conn As New CConnection 'ADODB.Connection

Dim rs As New CRecordset 'ADODB.Recordset

2.打开服务器端数据库

Dim bConn As Boolean

bConn = conn.OpenConnection("192.168.1.155", "DSN=testmdb;DRIVER={Microsoft Access Driver (*.mdb)};UID=admin;PWD=;")

If Not bConn Then

MsgBox conn.GetLastError()

Set conn = Nothing

Exit sub

End If

3.1.打开服务器上的记录集,并获取数据

Set rs = conn.OpenResultset("SELECT * FROM zdxx")

If rs Is Nothing Then

MsgBox "记录集合打开错误!"

Exit Sub

End If

'得到总的字段数

nFieldsCound = rs.GetFieldsCount()

Do Until rs.EOF

sField1 = rs.GetFieldValueByIndex(0) ’第一个字段的下标从0开始

sField2 = rs.GetFieldValueByIndex(1)

sField3 = rs.GetFieldValueByIndex(2)

Debug.Print sField1, sField2, sField3

rs.MoveNext

Loop

rs.CloseRecordset

set rs = nothing

3.2.更新数据库

Dim nRowAffected As Long

dim strSQL as String

strSQL = "INSERT into zdxx(zdxx,lkd,tabstop) values('测试内容','120','1')"

'可以是INSERT,UPDATE,DELETE中的任何一种

bOK = conn.Execute(strSQL, nRowAffected)

If (Not bOK) Then

MsgBox conn.GetLastError

Else

MsgBox "更新记录数:" & nRowAffected

End If

4.关闭对象

Set rs = Nothing

Set conn = Nothing

不知道大家看到没有,以上客户端的访问和ADO,RDO,等访问接口差不多。都是比较类似的,如果你会使用ADO,RDO等来访问数据库,则你可以很方便的把它们转变为此接口来实现。可以把你的单机版的ACCESS应用程序,升级为服务器版的ACCESS数据库应用程序。

注意:本接口不支持控件的绑定方式来获取数据,更新数据,除了以上讲的,暂不支持其它的数据库接口,此接口只能是以纯代码方式来访问服务器上的ACCESS。

服务器端的程序已经采用VC++编好,需要的读者可以和我联系。

2002.05.17

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
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- 王朝網路 版權所有