硬件学院 | 网络学院 | 游戏秘籍 | 求职技巧 | 企业管理 | 软件资讯 | IT导购 | 软件下载 | 源码下载
软件学院 | 安全资讯 | 图形图象 | 网络营销 | 电子商务 | 硬件资讯 | IT生活 | 教程下载 | 电影娱乐
网站首页    个人求职    单位招聘    高校联盟    猎头服务    培训服务    资讯中心    IT论坛
让每一个热爱IT的人都找到一份满意的工作!
文章搜索:
 您的位置首页->-> 软件学院-> 数据库技术-> 轻轻松松搞定数据库链接
轻轻松松搞定数据库链接
作者:未知 来源:未知 加入时间:2005-5-15 www.cnitrc.com
你能不能熟练地在UD中创建“DSN”数据链接呢,答案如果是肯定的,OK!请继续往下看,一般情况下,设置DSN在本地调试程序时是非常容易的一项操作。然而,一旦将ASP文件上传到远程服务器时,你的页面绝大多数会“罢工”!:)

目前市场上的主机服务商非常多,不同的Web主机服务商会提供不同的数据库链接途径,主要有以下5种:

服务商直接为你提供设置好的DSN。
服务商提供"Control Panel",你可以自己设置DSN 。
一些服务商要求你使用DSN less ,或者效率更高、链接速度更快的OLEDB方法。
有些服务商要求你在连接字符串使用Server.MapPath命令。
有些服务商则会告诉你使用制定的文件夹存放数据库文件(有读/写权限)。
在上传文件之前,必须确认你的空间服务商提供的是哪种数据库链接方式,否则你就会付出无谓的尝试。

如果缺乏经验的话、处理数据库的链接是非常痛苦的一件事情!但是不要惊慌,UltraDev有一套自己的方法来"定制连接字符串"。

在下面这些讲座中你会掌握以下技能:

为Access数据库创建“DSN-less”连接字符串
为Access数据库创建“ OLEDB ”连接字符串
为其他数据库定制连接字符串
在开始“定制连接字符串”的教程之前,先要建立一个站点,教程中所用到的页面很简单,包含"增加记录"/"查看记录"页面,数据库存储了一些音乐文件数据。

1/在 Access 创建如下图所示结构的表

建立“文本”或“备注”型字段时,请设置其“是否允许空字符”属性为“是”。否则、如果文本框中没有输入任何数据就提交数据时,程序将出错!







2/表名称:"music" ;数据库文件:"music1.mdb"

1/ 在桌面新建一个文件夹c1 。

2/ 复制刚才创建的数据库文件music1.mdb 到c1文件夹中. 复制C1文件夹到wwwroot 目录当中.

3/ 在 UltraDev 中定义站点,设置本地文件夹,远程文件夹……。然后在C1文件夹中新建两个文件c1_add.asp 和c1_view.asp 。



4/ 打开c1_add.asp 并插入一个简单的用来添加数据的表单:

ARTIST 文本框:  gk_artist
ALBUM 文本框:  gk_album
SOURCE 文本框:gk_source
表单:c1form. 不必担心设置Action 和Method 。


5/ 打开c1_view.asp 建立一个简单显示数据的页面如下图所示.



6/ 保存文件.


DNSLESS CUSTOM CONNECTION STRING

1/ 打开c1_add.asp .

2/ Modify > Connections. 点击按钮〖New 〗选择Custom Connection String (fig 1).

fig 1

3/ 弹出“Custom Connection String”设置窗口 (fig 2).


fig 2

4/ 确认单选按钮定位到“Using Driver On Application Server” (fig 3).
    在Connection Name文本框中输入:c1_music.
    在Connection String文本框中输入:

Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\c1\music1.mdb;

fig 3

让我们看一看刚才输入的代码的含义:

Driver={Microsoft Access Driver (*.mdb)}; 定义数据库驱动程序.
DBQ= 引用数据库物理路径位置
c:\inetpub\wwwroot\c1\music1.mdb;这就是你本地服务器中数据库文件所在的物理路径。

5/ 点击 OK 按钮 ,UD将在Connections创建一个ASP文件c1_music.asp.
此时我们已经为数据库建立了一个DSNLess 链接并存储于 wwwroot 目录中. 但是,问题来了:如果我上传文件到远程服务器上,怎么样修改数据库文件的路径 (c:\inetpub\wwwroot\c1\music1.mdb;) 呢?

6/ 如果你打开c1_music.asp 你能够看到以下的代码:

<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
MM_c1_music_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\c1\music1.mdb;"
%>

开始几行是注释,唯一有用的是红色代码部分:

MM_c1_music_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\c1\music1.mdb;"

假设你的网站是webgenius.co.uk ,你的主机服务商告诉你使用的数据库文件路径是:d:\webdocs\webgenius.co.uk\yourdatabase.mdb

此时,需要修改链接字符串示例如下:

MM_c1_music_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\webdocs\webgenius.co.uk\yourdatabase.mdb;"

当然需要修改yourdatabase.mdb为你刚才创建的文件music1.mdb 替换完成后如下:

MM_c1_music_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\webdocs\webgenius.co.uk\music1.mdb;"

**** 下面的内容非常重要!!!****

确保你输入的连接字符串全部都在一行上!不能敲入回车符或软回车符!
MM_c1_music_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=d:\webdocs\webgenius.co.uk\music1.mdb;"

如果你拷贝&粘贴定制的连接字符串,请一定要再次确认拷贝副本是否也在一行上。
在设置DSNLess连接时遇到的错误时存在两个主要的原因:“不正确的拼写”、“不正确的数据库路径”。
OLEDB CUSTOM CONNECTION STRING

ASP利用ADO与数据库连接时,同ODBC或Data Source Name(DSN)链接方式相比,使用OLEDB链接数据库更加快速可靠。OLEDB不需要通过第三方数据处理系统(data handling systems)直接链接到数据库.

1/打开 c1_add.asp 。

2/ Modify > Connections. 点击按钮〖New 〗选择Custom Connection String (fig 1).

fig 1

3/ 弹出“Custom Connection String”设置窗口 (fig 2).


fig 2

4/ 确认单选按钮定位到“Using Driver On Application Server” (fig 3).
    在Connection Name文本框中输入:c1_music.
    在Connection String文本框中输入:

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\c1\music1.mdb;


fig 3

链接字符串分为两部分:

Provider=Microsoft.Jet.OLEDB.4.0; 告诉我们使用Microsoft Jet OLEDB.4.0 OLEDB provider.
Data Source=c:\inetpub\wwwroot\c1\music1.mdb; 引用数据库文件的位置.
5/ 同上一页我们介绍的一样,在上传文件到远程服务器之前,需要修改数据库文件的路径:

<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
MM_c1_music_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\c1\music1.mdb;"
%>

假设你的网站是webgenius.co.uk ,你的主机服务商告诉你使用的数据库文件路径是:d:\webdocs\webgenius.co.uk\yourdatabase.mdb

此时,需要修改链接字符串示例如下:

<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
MM_c1_music_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\webdocs\webgenius.co.uk\yourdatabase.mdb;"
%>

需要注意的仍然是链接代码要在同一行中,不能有断行。

USING - Server.MapPath - & OTHER TRICKS

IN THEORY


上页的教程中我们已经通过d:\webdocs\webgenius.co.uk\yourdatabase.mdb建立一个DSNLess connection链接到数据库文件。现在设想发生了一件非常意外的事情:主机服务商需要做一些特殊的维护工作,并将的站点文件暂时移到另外一个硬盘如E盘中,这时原先设置的数据库文件路径d:\webdocs\webgenius.co.uk\yourdatabase.mdb就不能正常工作,因为此时数据库的正确位置应该是:e:\webdocs\webgenius.co.uk\yourdatabase.mdb!

通过Server.MapPath命令可以检测数据库文件的位置,不会因为站点文件夹的位置改变而变化。

●使用这个方法之前需要注意的几个问题:

在custom connection string设置面板中,如果使用Server.MapPath,必须注意单选框要选择Using Driver on Application Server 。
链接字符串不能有断行。
注意引号问题.
下面列举一些使用Server.MapPath 的例子:

DSNLess Connection Strings :

标准的链接字符串:
"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=c:\inetpub\wwwroot\your_site\data\music1.mdb"

使用Server.MapPath后如下:
"DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & Server.MapPath("/your_site/data/music1.mdb") & ";"


OLEDB Connection Strings :

标准的链接字符串:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\inetpub\wwwroot\your_site\data\music1.mdb"

使用Server.MapPath后如下:
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/your_site/data/music1.mdb")


IN PRACTICE

1/ 打开 c1_add.asp.

2/ Modify > Connections. 点击按钮〖New 〗选择Custom Connection String (fig 1).

fig1

3/ 弹出“Custom Connection String”设置窗口 (fig 2).


fig 2

4/ 确认单选按钮定位到“Using Driver On Application Server” (fig 3).
    在Connection Name文本框中输入:con1.asp

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/c1/music1.mdb")


fig 3

5/如果你点击Test 按钮,会弹出提示信息:“connection was made successfully”. 点击OK 按钮

6/打开 connection目录下的con1.asp 代码如下:

<%
' FileName="Connection_ado_conn_string.htm"
' Type="ADO"
' HTTP="true"
' Catalog=""
' Schema=""
MM_con1_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("/c1/music1.mdb")
%>


技巧 # 1

小工具The WebThang PathFinder
我们提供了一个非常小的文ASP文件:pathfinder.asp,可以快捷地提供数据库链接代码下载 HERE .

使用方法:

解压文件
上传pathfinder.asp 到你的服务器端(和数据库文件在同一目录中)
通过浏览器运行:www.yoursite.com/data/pathfinder.asp.
你会看到类似下面的显示结果:

DSNLess Connection String is
DRIVER={Microsoft Access Driver (*.mdb)};DBQ=C:\Inetpub\wwwroot\test2\YourDatabase.mdb

OLEDB Connection String is
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Inetpub\wwwroot\test2\YourDatabase.mdb

5.你所要做的仅仅是修改YourDatabase.mdb为你的数据库文件名,复制到custom connection string 设置窗口中(注意不要忘记在代码前后添加双引号).

技巧 # 2

假如你想创建一个Server.MapPath连接字符串,而数据库文件和你的远端站点ASP文件不在同一个目录下,你可能不能准确写出asp页和数据库文件之间精确路径,怎么办呢?尝试下面的方法

新建一个文件findpath.htm 同你的ASP 文件放到一起 (不要放到 Connections 目录下, 必须和asp文件在同一目录下)
打开findpath.htm输入“Path to Database” .
选择“Path to Database”建立一个超链接,连接到数据库文件.
在属性设置面板中Link文本框中你会看到类似../../mydatabase.mdb 的字符
拷贝字符,粘帖到Server.MapPath中。
STRINGS FOR ALL OCCASIONS

这里是用于连接各种数据库用的链接字符串,请根据你的需要选用。.


ODBC DSNLess Connections:

MS Access ODBC DSNless connection
Driver={Microsoft Access Driver (*.mdb)};Dbq=c:\yourpath\dbase.mdb;Uid=Admin;Pwd=pass;


dBase ODBC DSNless connection
Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\yourpath\dbase.dbf;

Oracle ODBC DSNless connection
Driver={Microsoft ODBC for Oracle};Server=OracleServer.world;Uid=admin;Pwd=pass;

MS SQL Server DSNless connection
Driver={SQL Server};Server=servername;Database=dbase_name;Uid=sa;Pwd=pass;

MS Text Driver DSNless connection
Driver={Microsoft Text Driver (*.txt; *.csv)};Dbq=c:\yourpath\;Extensions=asc,csv,tab,txt;Persist Security Info=False;

Visual Foxpro DSNless connection
Driver={Microsoft Visual FoxPro Driver};SourceType=DBC;SourceDB=c:\yourepath\dbase.dbc;Exclusive=No;

MySQL DSNless connection
driver={mysql}; database=yourdatabase;server=yourserver;uid=username;pwd=password;option=16386;


--------------------------------------------------------------------------------

OLE DB Connections:

MS Access OLE DB connection
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\yourpath\dbase.mdb;User Id=admin;Password=pass;

Oracle OLE DB connection
Provider=OraOLEDB.Oracle;Data Source=dbase_name;User Id=admin;Password=pass;

MS SQL Server OLE DB connection
Provider=SQLOLEDB;Data Source=machineName;Initial Catalog=dbasename;User ID=sa;Password=pass;

MS SQL Server OLE DB connection using an IP address
Provider=SQLOLEDB; Data Source=xx.xx.xx.xx,1433; Network Library=DBMSSOCN; Initial Catalog=dbasename;User ID=sa;Password=pass;

MS Text Driver OLE DB connection
"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\yourpath;Extended Properties='text;FMT=Delimited'"




  相关文章:
数据库技术
ASP技术
PHP技术
JSP技术
.NET技术
服务器技术
数据库技术
其它类
工具软件
办公软件
本类阅读TOP10
 
关于我们   |   服务声明   |   使用帮助   |   广告合作   |   网站地图   |   友情链接   |   加盟合作   |   联系我们
Copyright © 2006 cnitrc.com Inc. All Rights Reserved. 浙ICP备05074295号
中国IT人才网 版权所有 网络实名:中国IT人才
未经书面授权严禁转载和复制本站的任何招聘信息和文章