欢迎光临:
非常感谢您光临枕善居。本站是一个免费的基于VB,VB.NET源代码交流的平台,为大家提供优质的专业的源代码,如果您有需要,本站可以帮助在业余时间里给您寻找代码。当然,如果您有好的代码也可以在本站发布,共享给大家。
专业VB和.NET源码、编程开发教程、图标资源、USB电脑遥控器、智能家电控制开关....更多东东请进入我的淘宝小店--->
VB及.NET新源码2011(3DVD,控件+资源)
智能多路控制(串口编程开关) 带源码!
06-11
14
如何操作远程internet http服务器上mdb数据库?
作者:枕善居主 / 查看次数: 14990 / 评论: 9
问题:
1. 如何操作远程http服务器上mdb数据库?
2. 已知某WEB服务器上的ACCESS数据库路径,如何在本地建立连接?
3. 如何将远程http/web服务器的access数据库中的数据或表保存到本地?
===========================================================
回答:
无法简单实现。
Access是基于文件的,web服务器当然无法调用,这是原理问题。
不过你可以在WEB服务器上架设 Microsoft Replication Manager 4.0 后就可以用过同步来完成通过 INTERNET 进行的数据共享了。
如果你架设VPN的话可以,因为那是和在本机上access以文件形式操作mdb一样的。
你可以参考一下:
http://access911.net/index.asp?board=4&recordid=78FABE1E11DC
http://access911.net/down/help/Internet_Synchronization.rar
方法一:
你用类似 sql server 等软件转一下。
http网络操作不是 Access 的工作,是其他基于服务的数据库的应用范围。
方法二:
重新开发 Access 数据库,用winsock等控件开发客户端发送数据,服务端接受数据的数据库,在两边同时运行access的情况下可以完成所需的操作。
方法三:
使用类似 WebDrive 的第三方软件来建立虚拟磁盘,用文件共享形式操作 MDB。本方法在小数据量时的确可行,但是一旦 MDB 的体积较大,比如超过10MB,很可能导致并死甚至导致服务器上 MDB 文件彻底损坏,无法实现实时的大 MDB 远程操作。
Q & A 回答
【提问】我在您的网站上想找一些远程访问数据库的文章,不过没找到,想直接请教您,打扰了
【回答】是远程访问mdb文件嘛?
【提问】是的,我WEB服务器用SQLSERVER2000,另一台机器装的ACESS,所有的数据要在WEB服务器录入,同时要更新到对应机器的ACESS数据库,数据更新要保持同步。就是我要在装SQL200O的中心机 去更新 远程的ACESS库。我看好多人说要文件共享,并且ACESS不支持存储过程,触发器,事务等,可是在有些网上又看到了说可以写存储过程的,我都搞不清了
【回答】恐怕你要分清楚什么是access,什么是mdb,什么是jet应用了,你弄清楚了嘛?
【提问】没有,mdb不是ACESS的一个库文件吗,以前没用过。本来我说都装ACESS,结果领导非要用ACESS。领导的交往的朋友 大多做ERP,办公自动化,是他们建议用的ACESS。
【回答】Access是一个软件,mdb是这个软件默认的存储格式,jet应用是使用jet引擎来调用 mdb这种格式的文件。Access当然支持存储过程,但是是以Access为界面,sqlserver或者msde为后端数据库。成为adp。mdb格式不支持远程数据操作,因为mdb是一种文件格式,所以你要操作文件必须用文件共享。
【提问】那你的意思还是最终机器上还是要装SQLSERVER了?那为什么会有这种方法呢,直接用SQLSERVER不就可以了吗
【回答】请问sqlserver有客户端界面嘛?
【回答】你还不是一样要用vb等来做ui的?
【提问】没有,他和他的手下以前不做系统,我以前做系统,给他们提了很多系统设想,否决过他们的系统构架,采用了我的方案,但是他认为我不听话,呵呵,所以我不用他指定的ACESS他很生气,(我认为没什么,你让我用我就用,不是大问题,他就认为不听他话就是大问题)。现在我都不知道该怎么办。开始我说用库,他说不用,文件就够了,后来又听别人说用库就说要用库,有点别扭,发了点牢骚,呵呵
【回答】懂了?
【提问】我是用MFC的ISAPI,用ADO操作SQLSERVER2000,我在ACESS里 没见到创建存储过程的 地方。我现在所有的程序都是按照用SQLSERVER2000来写的
【回答】Access是软件,你要创建adp才行。另外,存储过程只不过是一串文本而已,是直接用adodb.connection.execute 创建的,不存在什么找不到地方
【回答】再次提醒access <> mdb <> adp
【提问】看来太复杂了,呵呵。ADP没用过,不知道是个什么东东,哎!
【提问】请问 如果共享了,安全性怎么保证呢。我不是通过ASP等来操作的,所有WEB的操作要转化到MFC,通过VC再对库操作。
【回答】Access其实是一个复杂的系统,即包括了界面,程序,数据结构,jet-sql,报表,browser客户界面,数据api等等东西,没那么容易全盘掌握
【回答】如果说是上百人同时使用,那么还可以理解,如果只是公司中的几十甚至十几人使用,你这种做法是费力不讨好的
【提问】看来我想推翻领导的想法一下也讲不清楚了,我死掉了
【回答】我看你领导是懂一点技术的,你的方案无疑是最耗费成本的
【提问】那要啊,我的ACESS在本地是程序操作的(都是最基本的)访问量就是本机。 至于同步更新是很少的,一个WEB中心下有100多个ACESS机器。对单个的ACESS来说 没什么压力。
【提问】他是懂的,是做设备的,但是数据库没做过
【回答】我的建议:sqlserver架总服务器,mdb文件为客户端,分别保存修改,每一段事件一次性上传至服务器。
【提问】不是的,反了,网络间的访问所有的都是WEB触发的,ACESS只能被动的接受。
【回答】呵呵,随便,反正我也弄不清楚你的具体应用
【提问】不好意思,我ACESS不太懂,也说不清楚。。 不知道这样说是不是清楚些。1:用A机器的VC访问B机器的ACESS库怎么访问。不在一个网关里。2:你说的JET引擎我想起来了,我连接本地的ACESS是用的JET,并且VC对库操作成功了。但是远程访问其他机器的ACESS不知道
【回答】唯一的原则:能否实现文件共享,如果不能,没门
【提问】至于对数据库的访问的界面我是用VC写成WEB的界面方式来管理数据库(添加,查询,删除,更新),已经快做完了。
【提问】哦,那对于 共享,并且暴露在INTERNET是不是会有安全隐患呢?或者在一个大的局域网里 安全性能保证吗?
【回答】根本不存在暴露在internet上的问题,解决方法是用vpn在局域网上应采用ad(活动目录)来保护文件
【提问】占用了您这么多时间,对于您的帮助十分感谢。祝您的网站越办越好!
后记
正如我的文章中所说,ACCESS 不支持 HTTP 协议交换数据,但是你可以编写一个 ASP 服务器端用于接收并存储数据,ACCESS 大连端发送数据到这个 ASP 网站,上海端 ACCESS 去从这个 ASP 网站下载数据。
或者你可以直接用 VB 的 WINSOCK 控件对端口进行编程,用动态域名解析软件获取 IP 后由上海直接向大连的 ACCESS 应用程序发送数据
或者你可以建立 FTP 服务器端,然后以文件共享形式交换大连和上海的数据,注意,这个时候即使你只改动一条记录,都要下载或者上传整个数据库,速度非常慢
或者用 VPN 拨入方式,造成一个基于INTERNET 的虚拟 INTRANET 环境进行数据交换(最可行的一种方式)
看了这些方法后你就知道,ACCESS 天生不是用来做 INTERNET 上 C/S 结构数据库的。
问题:
用access能否做成c/s结构?
想做一个生产管理系统,sql server太贵,用access做数据库行不行,因为有时是许多用户同时操作数据库.
用access做后台数据库安装在服务器上,各客户机通过客户端连接到这个数据库上,请问数据库所在的目录是否需要设置为完全共享?另外用access做网络数据库有没有局限性?
回答:
sql server——————————————你应该使用 MSDE
关于此主题请参考:
微软白皮书:选择MSDE还是Jet《ADP》
http://access911.net/index.asp?u1=a&u2=79FAB31E17DC
用 ACCESS (MDB 格式文件)做服务器端,必须在 INTRANET 或者用 VPN 架设 INTRANET 的情况下,允许文件共享,允许目录完全控制这样才可以正常共享使用。
局限性显而易见,多用户容易产生冲突,安全性差,速度慢
使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)。分服务器和客户端两部分,服务器可以多用户同时连接。远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器)。
-------------------------------------
远程连接access数据库的几个方法:
1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器中mdb文件所在的Folder共享即可。ADO连接如下:
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\ServerName\DatabaseFolder\Database.mdb;Jet OLEDB:Database Password=databasepw;Persist Security Info=False"
2.把Database放在Web Server上,使ADO或RDO通过RDS(Remote Data Service)及IIS来实现:
如果服务器像上面Jave大侠说那样设置了ODBC DSN的话:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://myServerName;" & _
"Remote Provider=MSDASQL;" & _
"DSN=AdvWorks;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
如果设置的是OLE DB Provider 的话:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://myServerName;" & _
"Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\somepath\mydb.mdb", _
"admin", ""
3.自己编写服务器程序,通过TCP/IP,传递Recordset。
4.使用第三方控件,如:ADO Anywhere或UDAParts RDB等。具体查看
http://www.adoanywhere.com
http://www.udaparts.com/
5.使用XMLHTTP
--------------------------------------
附 远程连接SQL Server的方法:
ConnStr = "Provider=SQLOLEDB.1;Network Library=DBMSSOCN;Persist Security Info=True;User ID=UserName;Password=Password;Initial Catalog=远程数据库名;Data Source=203.129.92.1"
上述摘录中提到的方法基本在 ACCESS 中都不是很实用,文中提到的方法3用于传递实时数据时必须自己写逻辑以判定是否与服务器上已有数据重复、是否要删除、是否要更新。因此 access911 综上所述,纯 ACCESS 环境中目前不适合用来实现实时异地的数据共享,用 ASP 更加适合。
这篇文章比较乱,不过还是能从中学习到东西的。
1. 如何操作远程http服务器上mdb数据库?
2. 已知某WEB服务器上的ACCESS数据库路径,如何在本地建立连接?
3. 如何将远程http/web服务器的access数据库中的数据或表保存到本地?
===========================================================
回答:
无法简单实现。
Access是基于文件的,web服务器当然无法调用,这是原理问题。
不过你可以在WEB服务器上架设 Microsoft Replication Manager 4.0 后就可以用过同步来完成通过 INTERNET 进行的数据共享了。
如果你架设VPN的话可以,因为那是和在本机上access以文件形式操作mdb一样的。
你可以参考一下:
http://access911.net/index.asp?board=4&recordid=78FABE1E11DC
http://access911.net/down/help/Internet_Synchronization.rar
方法一:
你用类似 sql server 等软件转一下。
http网络操作不是 Access 的工作,是其他基于服务的数据库的应用范围。
方法二:
重新开发 Access 数据库,用winsock等控件开发客户端发送数据,服务端接受数据的数据库,在两边同时运行access的情况下可以完成所需的操作。
方法三:
使用类似 WebDrive 的第三方软件来建立虚拟磁盘,用文件共享形式操作 MDB。本方法在小数据量时的确可行,但是一旦 MDB 的体积较大,比如超过10MB,很可能导致并死甚至导致服务器上 MDB 文件彻底损坏,无法实现实时的大 MDB 远程操作。
Q & A 回答
【提问】我在您的网站上想找一些远程访问数据库的文章,不过没找到,想直接请教您,打扰了
【回答】是远程访问mdb文件嘛?
【提问】是的,我WEB服务器用SQLSERVER2000,另一台机器装的ACESS,所有的数据要在WEB服务器录入,同时要更新到对应机器的ACESS数据库,数据更新要保持同步。就是我要在装SQL200O的中心机 去更新 远程的ACESS库。我看好多人说要文件共享,并且ACESS不支持存储过程,触发器,事务等,可是在有些网上又看到了说可以写存储过程的,我都搞不清了
【回答】恐怕你要分清楚什么是access,什么是mdb,什么是jet应用了,你弄清楚了嘛?
【提问】没有,mdb不是ACESS的一个库文件吗,以前没用过。本来我说都装ACESS,结果领导非要用ACESS。领导的交往的朋友 大多做ERP,办公自动化,是他们建议用的ACESS。
【回答】Access是一个软件,mdb是这个软件默认的存储格式,jet应用是使用jet引擎来调用 mdb这种格式的文件。Access当然支持存储过程,但是是以Access为界面,sqlserver或者msde为后端数据库。成为adp。mdb格式不支持远程数据操作,因为mdb是一种文件格式,所以你要操作文件必须用文件共享。
【提问】那你的意思还是最终机器上还是要装SQLSERVER了?那为什么会有这种方法呢,直接用SQLSERVER不就可以了吗
【回答】请问sqlserver有客户端界面嘛?
【回答】你还不是一样要用vb等来做ui的?
【提问】没有,他和他的手下以前不做系统,我以前做系统,给他们提了很多系统设想,否决过他们的系统构架,采用了我的方案,但是他认为我不听话,呵呵,所以我不用他指定的ACESS他很生气,(我认为没什么,你让我用我就用,不是大问题,他就认为不听他话就是大问题)。现在我都不知道该怎么办。开始我说用库,他说不用,文件就够了,后来又听别人说用库就说要用库,有点别扭,发了点牢骚,呵呵
【回答】懂了?
【提问】我是用MFC的ISAPI,用ADO操作SQLSERVER2000,我在ACESS里 没见到创建存储过程的 地方。我现在所有的程序都是按照用SQLSERVER2000来写的
【回答】Access是软件,你要创建adp才行。另外,存储过程只不过是一串文本而已,是直接用adodb.connection.execute 创建的,不存在什么找不到地方
【回答】再次提醒access <> mdb <> adp
【提问】看来太复杂了,呵呵。ADP没用过,不知道是个什么东东,哎!
【提问】请问 如果共享了,安全性怎么保证呢。我不是通过ASP等来操作的,所有WEB的操作要转化到MFC,通过VC再对库操作。
【回答】Access其实是一个复杂的系统,即包括了界面,程序,数据结构,jet-sql,报表,browser客户界面,数据api等等东西,没那么容易全盘掌握
【回答】如果说是上百人同时使用,那么还可以理解,如果只是公司中的几十甚至十几人使用,你这种做法是费力不讨好的
【提问】看来我想推翻领导的想法一下也讲不清楚了,我死掉了
【回答】我看你领导是懂一点技术的,你的方案无疑是最耗费成本的
【提问】那要啊,我的ACESS在本地是程序操作的(都是最基本的)访问量就是本机。 至于同步更新是很少的,一个WEB中心下有100多个ACESS机器。对单个的ACESS来说 没什么压力。
【提问】他是懂的,是做设备的,但是数据库没做过
【回答】我的建议:sqlserver架总服务器,mdb文件为客户端,分别保存修改,每一段事件一次性上传至服务器。
【提问】不是的,反了,网络间的访问所有的都是WEB触发的,ACESS只能被动的接受。
【回答】呵呵,随便,反正我也弄不清楚你的具体应用
【提问】不好意思,我ACESS不太懂,也说不清楚。。 不知道这样说是不是清楚些。1:用A机器的VC访问B机器的ACESS库怎么访问。不在一个网关里。2:你说的JET引擎我想起来了,我连接本地的ACESS是用的JET,并且VC对库操作成功了。但是远程访问其他机器的ACESS不知道
【回答】唯一的原则:能否实现文件共享,如果不能,没门
【提问】至于对数据库的访问的界面我是用VC写成WEB的界面方式来管理数据库(添加,查询,删除,更新),已经快做完了。
【提问】哦,那对于 共享,并且暴露在INTERNET是不是会有安全隐患呢?或者在一个大的局域网里 安全性能保证吗?
【回答】根本不存在暴露在internet上的问题,解决方法是用vpn在局域网上应采用ad(活动目录)来保护文件
【提问】占用了您这么多时间,对于您的帮助十分感谢。祝您的网站越办越好!
后记
正如我的文章中所说,ACCESS 不支持 HTTP 协议交换数据,但是你可以编写一个 ASP 服务器端用于接收并存储数据,ACCESS 大连端发送数据到这个 ASP 网站,上海端 ACCESS 去从这个 ASP 网站下载数据。
或者你可以直接用 VB 的 WINSOCK 控件对端口进行编程,用动态域名解析软件获取 IP 后由上海直接向大连的 ACCESS 应用程序发送数据
或者你可以建立 FTP 服务器端,然后以文件共享形式交换大连和上海的数据,注意,这个时候即使你只改动一条记录,都要下载或者上传整个数据库,速度非常慢
或者用 VPN 拨入方式,造成一个基于INTERNET 的虚拟 INTRANET 环境进行数据交换(最可行的一种方式)
看了这些方法后你就知道,ACCESS 天生不是用来做 INTERNET 上 C/S 结构数据库的。
问题:
用access能否做成c/s结构?
想做一个生产管理系统,sql server太贵,用access做数据库行不行,因为有时是许多用户同时操作数据库.
用access做后台数据库安装在服务器上,各客户机通过客户端连接到这个数据库上,请问数据库所在的目录是否需要设置为完全共享?另外用access做网络数据库有没有局限性?
回答:
sql server——————————————你应该使用 MSDE
关于此主题请参考:
微软白皮书:选择MSDE还是Jet《ADP》
http://access911.net/index.asp?u1=a&u2=79FAB31E17DC
用 ACCESS (MDB 格式文件)做服务器端,必须在 INTRANET 或者用 VPN 架设 INTRANET 的情况下,允许文件共享,允许目录完全控制这样才可以正常共享使用。
局限性显而易见,多用户容易产生冲突,安全性差,速度慢
使用了TCP/IP,ADO及XML(需要安装Microsoft XML 4.0。)。分服务器和客户端两部分,服务器可以多用户同时连接。远程连接Access数据库有很多方法,我以前已经比较详细的回答过(见下面所列的5种方法),我现在这个例子属于其中的第3种方法(不需要使用RDS或Web服务器)。
-------------------------------------
远程连接access数据库的几个方法:
1.建立VPN(Virtual Private Network),这样你的电脑和主机的连接就与局域网无异,然后把服务器中mdb文件所在的Folder共享即可。ADO连接如下:
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=\\ServerName\DatabaseFolder\Database.mdb;Jet OLEDB:Database Password=databasepw;Persist Security Info=False"
2.把Database放在Web Server上,使ADO或RDO通过RDS(Remote Data Service)及IIS来实现:
如果服务器像上面Jave大侠说那样设置了ODBC DSN的话:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://myServerName;" & _
"Remote Provider=MSDASQL;" & _
"DSN=AdvWorks;" & _
"Uid=myUsername;" & _
"Pwd=myPassword"
如果设置的是OLE DB Provider 的话:
oConn.Open "Provider=MS Remote;" & _
"Remote Server=http://myServerName;" & _
"Remote Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=c:\somepath\mydb.mdb", _
"admin", ""
3.自己编写服务器程序,通过TCP/IP,传递Recordset。
4.使用第三方控件,如:ADO Anywhere或UDAParts RDB等。具体查看
http://www.adoanywhere.com
http://www.udaparts.com/
5.使用XMLHTTP
--------------------------------------
附 远程连接SQL Server的方法:
ConnStr = "Provider=SQLOLEDB.1;Network Library=DBMSSOCN;Persist Security Info=True;User ID=UserName;Password=Password;Initial Catalog=远程数据库名;Data Source=203.129.92.1"
上述摘录中提到的方法基本在 ACCESS 中都不是很实用,文中提到的方法3用于传递实时数据时必须自己写逻辑以判定是否与服务器上已有数据重复、是否要删除、是否要更新。因此 access911 综上所述,纯 ACCESS 环境中目前不适合用来实现实时异地的数据共享,用 ASP 更加适合。
这篇文章比较乱,不过还是能从中学习到东西的。
回复
|
]如果是网络的话,用ASP应该比用VB要方便一些~~
楼上的通过ASP等网页程序进行通讯,VB发送相关的数据过去,ASP程序来进行处理很容易实现的。
为什么 一定要用VB,就ASP行了.
虽然有点乱,但很实际,至少"ACCESS 天生不是用来做 INTERNET 上 C/S 结构数据库的"这个道理让人深入人心了!
即使是在局域网中,ACCESS也存在很多不足.这也是我亲身经历过的.
即使是在局域网中,ACCESS也存在很多不足.这也是我亲身经历过的.
做个网页,通过在VB中调用网页来操作数据库
我也是这样想的~
我也是这样想的~
做个网页,通过在VB中调用网页来操作数据库
痛苦啊, 基本上没有一条方法是偶看得懂的。
请问亲爱的居主 : 我现在想做一个类似的软件。是项目管理软件 ,共享的数据库是放在出钱租的WEB空间上的。
因为我们是一个业余开发的团队, 团队成员来自全国各地 , 依靠网络进行通信, 所以想做一个对成员档案管理 和 项目进度管理控制的软件。 现在的关键问题是, 我还是弄不清楚VB如何来访问远程数据库 。 刚才看了 服务端还有一些复杂的设定 。 这个就不知道如何控制了, 机器不是我的。 我没有办法设置啊。 请问楼主 , 有没有我把数据库文件,扔服务器, 然后在VB里直接输代码访问的方法呢?
请问亲爱的居主 : 我现在想做一个类似的软件。是项目管理软件 ,共享的数据库是放在出钱租的WEB空间上的。
因为我们是一个业余开发的团队, 团队成员来自全国各地 , 依靠网络进行通信, 所以想做一个对成员档案管理 和 项目进度管理控制的软件。 现在的关键问题是, 我还是弄不清楚VB如何来访问远程数据库 。 刚才看了 服务端还有一些复杂的设定 。 这个就不知道如何控制了, 机器不是我的。 我没有办法设置啊。 请问楼主 , 有没有我把数据库文件,扔服务器, 然后在VB里直接输代码访问的方法呢?
发表评论
您没有权限发表评论!
上一篇
下一篇
相关日志:
文章来自:
Tags:
评论: 9 | 