首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >远程连接到Access数据库

远程连接到Access数据库
EN

Stack Overflow用户
提问于 2012-07-09 09:54:29
回答 1查看 10.7K关注 0票数 1

我正在尝试连接到我的access数据库,这是我与godaddy托管的数据库。我有ASP 3.5、Php 5.2和IIS 7。我已经在我的IIS设置中为vb脚本设置了一个虚拟目录。我正在使用Microsoft Visual Web Developer 2008。如果他们发现我与远程数据库的连接字符串有问题,请告诉我。我真的需要使用Access来做这件事。谢谢

代码类似于我遵循的教程。Tutorial (它是西班牙语的,但代码在本地工作,而不是远程工作)

代码语言:javascript
运行
复制
Protected Sub Login1_Authenticate(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.AuthenticateEventArgs) Handles Login1.Authenticate
        Dim objConn As Object
        Dim objRecords As Object
        Dim strConn As String
        Dim strQuery As String

        objConn = Server.CreateObject("ADODB.Connection")
        strConn = "Provider=MS Remote;" & "Remote Server=http://(IP Address here);" & "Remote Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & Server.MapPath("/logs/App_Data/users.mdb") & "Uid=admin" & "Pwd="
        objConn.Open(strConn)

        strQuery = "SELECT * FROM tbl_usuarios"
        strQuery = strQuery + " Where str_usuario_ide='" + Login1.UserName + "'"
        strQuery = strQuery + " And   str_usuario_cve='" + Login1.Password + "'"

        objRecords = objConn.Execute(strQuery)
        If (Not objRecords.BOF) Then
            e.Authenticated = True
        Else
            e.Authenticated = False
        End If

        objRecords.Close()
        objConn.Close()
        objRecords = Nothing
        objConn = Nothing
    End Sub
End Class
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-07-09 14:32:39

除非使用完整的UNC路径名,否则无法连接到驻留在服务器上的MS Access数据库。这意味着非http://技术

http:是银河的一种不同于windows网络系统的技术。要正确打开Excel文件、word文件或Access文件,您不能使用ftp或类似http:

你需要使用windows网络。这意味着您需要设置VPN,并且需要运行WINDOWS网络(不是Linux,也不是该服务器上的apple OS )。在Linux的情况下,您可能希望并“要求”安装SAMBA来获得标准的windows网络系统。(因此,要让windows计算机打开Linux计算机上的文件,您需要安装"windows兼容“网络系统。

因此,用于连接到标准mdb或accDB文件的连接字符串是完全限定的windows路径名。您提供的路径名必须是标准的windows路径名,并且必须基于标准的windows网络系统。因此,如果你设置了一个VPN,然后你可以通过windows网络(不是http,也不是FTP)浏览那个文件夹中的文件,那么标准的windows锁定和打开机制将会起作用,并且是打开位于文件夹中的标准windows文件所必需的。因此,在所有情况下,您仍然需要本地硬盘上的文件夹或从网上邻居映射的文件夹。如上所述,这里的网络系统必须是windows网络。我不相信GoDaddy的基本计划有能力建立VPN,并直接使用文件和操作他们服务器上的基本文件(你必须使用ftp将文件放在他们的服务器上,而不是一个共享的windows网络文件夹)。更重要的是,在mdb/accDB文件的情况下,这种直接使用的文件必须是windows网络。

我读到过GoDaddy确实允许外部连接到他们的数据库服务器选项。因此MySql或可能是用于windows的SQL server软件包。然而,这里需要注意的是,在默认情况下,大多数计划都不允许从外部连接到其内部数据库服务器。事实上,在他们允许这种连接的任何计划中,然后他们将托管的网站“移动”到另一组服务器,以便如果至少如果通过允许因特网的狂野世界“连接”到这些内部数据库服务器而受到损害,那么并不是所有的服务器都会受到这种安全破坏的影响或损害。

因此,我建议您使用真正的数据库服务器。我看不出有什么理由(如果有的话)去尝试使用位于web服务器上的mdb文件。

因此SQL server或MySql可以接受套接字连接,并可以通过任何支持TC/IP网络执行此操作。然而,MS Access“文件”不接受这样的连接。所以不允许http或ftp。请记住,"mdb“或"accDB”文件只是硬盘上的一个文件。

因此,当您使用Excel、Power-point、AUTO CAD或简单的Access文件时,这样的“套接字”连接是不可能的。所以你不能再使用连接字符串到Power-Point,然后你可以使用一个简单的windows文件,该文件位于web服务器硬盘驱动器上,恰好有一个mdb或accDB扩展名。

文件就是文件就是文件。马就是马就是马。因此,您正在谈论位于该服务器上的文件夹中的一个普通的Jane windows文件。

如果您要使用windows程序(如power point或本例中为MS Access)打开和修改该文件,则需要使用标准windows网络打开该文件,而不是使用某种基于web的连接系统。

因此,任何连接字符串都不可能打开plane jane windows文件,无论它是您最喜欢的绘图程序还是简单的Access文件。

当然,如果您正在构建的软件正在服务器端运行,并且"JET“引擎已正确安装在该服务器上(并且必须正确安装),那么您可以编写一些具有标准oleDB连接字符串的vb.net或任何类型的代码。因此,对于服务器端代码,您可以使用conneciton字符串,但如果仔细观察,您将始终使用完全限定的windows路径名,并且如前所述,您必须运行安装了JET数据库引擎的windows兼容服务器。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11388277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档