• 网站首页
  • 涉税提问
  • 财税法规
  • 税收筹划
  • 优惠政策
  • 案例解析
  • 培训中心
  • 财富工具
  • 房产专题
  • 会计范文
中财税帮助

去向导航

  • 常见问题
  • 费用核算
  • 负债核算
  • 会计报表
  • 利润核算
  • 收入核算
  • 外汇核算
  • 资本核算
  • 资产核算
  • 更多...

常用分类

  • 浏览器
  • Windows
  • 音乐/电影
  • 网站开发
  • 游戏
  • 办公自动化

中财税帮助系统

2009-1-10

欢迎您登陆并使用中国财税咨询中心为您免费提供的资料,交流,学习为一体的平台!

如果您在使用中遇到什么问题,请您不要吝啬,一定要写信给我们!!

Email:Shellapi@126.com 期待您的来信,或指导批语!

帮助内难免有收集的资料,如果侵犯了您的仅力,请您来信告知,我们马上删除或更新处理!

文章搜索--请输入关键词:

轻轻松松搞定数据库链接

更多2009-1-10 日更新内容!
    你能不能熟练地在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'"




Site designed by 中国财税咨询中心