将ms访问驱动的站点从sql server移动到jabry.com - 连接字符串问题

时间:2009-09-06 15:16:11

标签: sql-server ms-access connection-string

我已经完成了一些mysql php编程,但对于asp / access等来说还是新手。

这将非常容易或不可能!

内容:

我正在尝试将Web应用程序从公司网络传输到外部Web主机进行测试,并且不知道如何将这些页面连接到新服务器上的数据库。

背景:

我从公司服务器继承了一个(ms访问)数据库驱动的网站,并被要求将其分开并记录下来,以便它没有单点故障问题(原始程序员很久以前就消失了)< / p>

它托管在企业网络上的ms sql server上。

我在www.jabry.com上获得了一些访问驱动网站的免费托管服务,并希望将整个应用程序转移到那里并将其用作测试床。

我收到了.mdb文件的副本并将其上传到jabry。我的问题是我应该使用什么连接到新数据库?

这是旧的连接说明:

dim objConn
set objConn = Server.CreateObject("ADODB.Connection")
objConn.Open "PROVIDER=SQLOLEDB;DATA SOURCE=UKNTHSQL900;UID=****User;PWD=***able8; DATABASE=PropertyRegister"

JABRY推荐使用:

Dim Conn
Set Conn = Server.CreateObject("ADODB.Connection")
strConnection = "DRIVER=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath("/USERNAME/db/yourdatabase.mdb")
oConn.Open(strConnection)

我已经尝试了各种各样的排列让这个工作,但几个小时后(!)认为我最好得到一些帮助。

当需要密码时,我可以使用dsnless连接吗?两种服务器类型完全不兼容吗?请帮忙!

3 个答案:

答案 0 :(得分:3)

此网站应该有所帮助:http://www.connectionstrings.com/access

  dbfile=Server.MapPath("..\YourDB.mdb")
  Set objConn=Server.CreateObject("ADODB.Connection")

  objConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
              "Data Source=" & dbfile & ";Jet OLEDB:Database Password=PW"

“.. \”部分取决于您运行代码的位置以及数据库所在的位置。

编辑重新评论:您还可以使用ADO枚举数据库中保存的表和查询。

   ''cn = Your connection
   Set rs = cn.OpenSchema(20, Array(Empty, Empty, Empty))

   Do While Not rs.EOF
      '' This is vbscript / vba, as per comments, 
      '' change to rs("Table_Type") for ASP ...
      If rs!TABLE_TYPE <> "View" Then
         '' ... and this to rs("TABLE_NAME") ...
         s = s & rs!TABLE_NAME & vbCrLf
      End If
      rs.MoveNext
   Loop

   rs.Close
   Set rs = Nothing

   '' ... and this to Response.Write s
   MsgBox s

更多信息:http://msdn.microsoft.com/en-us/library/aa165325%28office.10%29.aspx

答案 1 :(得分:3)

无论何种类型的连接,Jabry db文件夹都不允许更新查询。为了让他们的工作有序,他们必须承受一点压力!

答案 2 :(得分:0)

您是如何获得.mdb文件的?如果从SQL Server数据库导出到Access数据库文件,则根据SQL Server数据库中使用的功能,它可能会也可能不起作用。如果它仅用于“哑”存储,则Access数据库文件可以执行此操作,但如果它使用诸如存储过程,用户定义的函数或触发器之类的功能,则Access数据库文件无法复制该文件。

如果Access数据库设置了密码,则必须在连接字符串中指定该密码。您指定的用户名是“Admin”,因此连接字符串应如下所示:

"Driver={Microsoft Access Driver (*.mdb)};Dbq=" & Server.MapPath("/YourUserName/db/TheDatabaseFileName.mdb") & ";Uid=Admin;Pwd=ThePassword;"

当然,您必须使用实际值替换YourUserNameTheDatabaseFileNameThePassword部分。您还必须将数据库上载到服务器上的db文件夹中,该文件夹设置有适当的文件权限,以便Web应用程序能够写入数据库文件。

网络酒店推荐的是ODBC驱动程序,但如果可能的话我宁愿使用JET驱动程序。您可以在此处找到许多用于Access的连接字符串示例:http://www.connectionstrings.com/access