|
本帖最后由 ganlinlao 于 2013-11-7 21:24 编辑
Access菜鸟七大邪门武器之三—以winsock方式快速搭建服务器版access
这不算很好的方案,但也不算很烂的方案。如果你的数据不算多,用户使用称不上繁杂,
不需要可怕的高并发,不需要可怕的灾难恢复。特别是如果你对Access一见钟情,大有以身相许的豪迈,
那么本邪门武器,可能真的很适合你。
既然是以winsock的方式,那么在这里我将推荐一个NetData。这是对winsock的再封装,可以说专用于
access。适合小型的C/S方式。是快速让你的access成为服务器版的一枝伤心小箭。
但在使用之前,你一定要适当了解一下winsock的优缺点。别进洞房,才发现媳妇不是高小姐,而是大师兄
那比守寡还添堵啊。
服务端:
1、单端口多连接。这是常用的
2、双端口多连接。如果你的数据传输量比较大,可以在服务端使用双端口。一个负责接收数据,写入数据库,一个负责查询,发送数据。
这样子性能会有所改观。
3、多用户多端口多连接。跟聊天差不多。
服务端使用很简单:你可以用任何支持com的语言写,包括vbscript和jscript。也可以用access来写,不过access得一直开着。
在这里图方便我使用vb6。在vb6中建立一个form1。引用netdata控件。
代码如下:
Private Sub Form_Load()
Dim objXMLDoc As Object, strConn As String, strPort As String
'获取config配置文件,用配置文件是为了方便更改数据库连接和端口
Set objXMLDoc = CreateObject("msxml2.DOMDocument.6.0")
If objXMLDoc Is Nothing Then Set objXMLDoc = CreateObject("msxml2..DOMDocument.3.0")
On Error GoTo errhandler
objXMLDoc.Load App.Path & "\" & "config.xml"
strConn = objXMLDoc.getElementsByTagName("ConnectionString")(0).Text
strPort = objXMLDoc.getElementsByTagName("Port")(0).Text
'指定服务器上数据库的连接字符串,和服务器对外提供的监听端口
'并打开服务器的服务...
NetDataServer1.Start strConn, strPort
Set objXMLDoc = Nothing
Exit Sub
errhandler:
MsgBox "没有找到config文件!"
End
End Sub
Private Sub Form_Unload(Cancel As Integer)
NetDataServer1.Down '关闭服务,释放资源...
End Sub
其实你只要两行代码就可以了。
form_load事件写入 netdataserver1.start "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;","8899"
form_unload事件写入 netdatasever1.down
编译运行。一个服务器版的access建立起来了。
配置文件config.xml如下:
<?xml version="1.0" encoding="GBK"?>
<config>
<!--数据库连接字符串,如果是07版本以上,请用Microsoft.ACE.OLEDB.12.0;-->
<ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=cs.mdb;</ConnectionString>
<!--设置端口,最好在10000以上,不超过65536,以避免跟其它默认端口冲突-->
<Port>8899</Port>
</config>
|
评分
-
查看全部评分
|