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

2009年8月19日星期三 | | |


  AUTHOR:jyu1221(天同)
  QQ : 19632995
  MSN : [email protected]
  EMAIL : [email protected]
   大家都知道,如果把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

我的QQ空间
破解Access(*.mdb)目前所有版本的密码
关于Access97的密码破解,在很多的网站和杂志上都有过介绍。在这...
 

0 评论:


所有文章收集于网络,如果有牵扯到版权问题请与本站站长联系。谢谢合作![email protected]