为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > ASP动态网站如何通过自定义连接字符串与Access数据库建立连接

ASP动态网站如何通过自定义连接字符串与Access数据库建立连接

2011-05-26 6页 doc 43KB 42阅读

用户头像

is_264828

暂无简介

举报
ASP动态网站如何通过自定义连接字符串与Access数据库建立连接假定所有操作均在如下环境下进行: 更多教程http://jiaocheng.5d6d.com 假定所有操作均在如下环境下进行:     1. XP SP2 系统,系统中已安装了 IIS 服务器和 Office2003(用其中的 Access2003 建立数据库),网站制作工具是 Dreamweaver MX 2004 或 Dreamweaver 8(下面均简称 DW );   2. 假设你网站本地存放位置是 F:\try,网站主页文件是 index.asp 本地存放于 F:\try\下,做数据库连接试验用的数据库名字是aaa....
ASP动态网站如何通过自定义连接字符串与Access数据库建立连接
假定所有操作均在如下环境下进行: 更多教程http://jiaocheng.5d6d.com 假定所有操作均在如下环境下进行:     1. XP SP2 系统,系统中已安装了 IIS 服务器和 Office2003(用其中的 Access2003 建立数据库),网站制作工具是 Dreamweaver MX 2004 或 Dreamweaver 8(下面均简称 DW );   2. 假设你网站本地存放位置是 F:\try,网站主页文件是 index.asp 本地存放于 F:\try\下,做数据库连接试验用的数据库名字是aaa.mdb,本地存放位置是 F:\try\data\aaa.mdb。   3. 在本地 IIS 中已经为你在 F:\try 下的网站建立了虚拟目录,虚拟目录的名字由你自己决定,例如仍命名为 try 。     一、在本地“浏览”调试网站时的连接方法     在 DW 或本地的 IIS 服务器下浏览、调试网站访问数据库时,自定义连接字符串中使用数据库的绝对路径,操作如下:     打开 DW,建好站点,打开所需网页,例如主页文件 index.asp,在弹出的“自定义连接字符串”对话框中“连接名称”栏填写自定义的名称(为了养成好的编程习惯,最好名称前加上 conn 前缀,明这是一个数据库的连接名称,例如本来你想起的连接名称为 test,加上 conn 前缀后的连接名称为 conntest)。在“连接字符串”栏中填写:     "Driver={Microsoft Access Driver (*.mdb)};DBQ=你的数据库的绝对路径"     把本文开始处假定的具体参数代进去就是:     "Driver={Microsoft Access Driver (*.mdb)};DBQ=F:\try\data\aaa.mdb"     一定要注意:Driver 和 (*.mdb) 之间有个空格,不要写错了!写错了不能通过“测试”,当然也连接不上数据库。上面连接字符串两端的双引号在输入时可以省略,DW 会自动为你补上的。     在“Dreamweaver 应连接”项中,应选择“使用此计算机上的驱动程序”。填写完毕后,点击右边的[测试]按钮,如果操作没有问的话,就会弹出“成功创建连接脚本”的信息牌。点击[确定]完成连接的创建。     此时回到 DW 的“应用程序”面板中的[数据库],可以看到我们创建的数据库连接已经生效,并能查看数据库的结构和相关信息。     在数据库的数据表图标上单击右键,选择“查看数据”,可以查看到该数据表中的详细。     在“文件”面板中,我们可以看到 DW 自动生成了一个 Connections 的文件夹,其中包含了一个以我们刚才自定的连接名称 conntest 命名的 asp 文件,这个就是保存连接字符串的地方。之后的绑定记录集操作因不是本文主题,故略去。     到此,与数据库连接的网页在本地 IIS 服务器和 DW 下可以正常访问数据库进行“浏览”了,但不能保证你的网站上传到远程服务器的空间后也能正常。     二、让数据库的连接同时适应本地和远程服务器环境     我们在连接中使用了数据库的绝对路径 F:\try\data\aaa.mdb,而当我们把网站上传到远程服务器后,服务器上你的数据库的绝对路径可能和本地路径不一样,相关程序就会出错。为了避免这种情况,我们应在程序中使用相对路径。     在 DW 下双击打开连接文件(本文中是 conntest.asp),切换到[代码]编辑方式,找到其中的这一行:     MM_conntest_STRING = "Driver={Microsoft Access Driver (*.mdb)};DBQ=F:\try\data\aaa.mdb"     在这一行前加一个单引号“'”把它变成注释行,然后在下面新建一行,输入如下代码:     MM_conntest_STRING = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&Server.Mappath("data/aaa.mdb")     很多人也许会奇怪,为什么我们不在创建连接时就使用相对路径呢?其实这是有原因的。在 DW 中的连接字符串中只能使用绝对路径,而 DW 有个特点,就是检测连接文件(这里是 conntest.asp)时,会连注释(以单引号开头的行)一起解释、执行,在 DW 中“浏览”网页、执行数据库的连接时,只认第一个出现的连接字符串,而不管它前面是否有作为注释标记的单引号;而在远程 IIS 服务器中解释文件时会忽略掉注释(即绕过有注释标记的行),执行上面我们另加的第二个连接字符串。根据这个特点,我们就实现了在本地 IIS 服务器和 DW 下调试程序使用绝对路径,在远程服务器上浏览时使用相对路径定位数据库,使得网站与数据库的连接在网站存放地点不同的情况下能“自动”随机应变,畅通无阻。     到此,数据库的连接创建完毕。 名词解释    microsoft.jet.oledb.4.0 是access数据库引擎4.0版,jet是“引擎”的意思,可理解成是访问access数据库的驱动。win 98 se 以上版本附带,无需另外安装,是随 microsoft data access components (mdac) 版本 2.1 或者更高的版本安装的。微软操作系统windows安装后自带madc,只不过版本不同。 (参考《编程知识论坛》http://www.bczs.net/xml/2006/4/21/4704528.xml)   odbc odbc(open database connectivity),即开放数据库互联。 odbc基于sql(structured query language),并把它作为访问数据库的。这个接口提供了最大限度的相互可操作性:一个应用程序可以通过一组通用的代码访问不同的数据库管理系统。一个软件开发者开发的客户/服务器应用程序不会被束定于某个特定的数据库之上。odbc可以为不同的数据库提供相应的驱动程序。对于asp程而言,odbc数据源是asp程序的ado组件和数据库之间的接口。 (引自《龙城教育》http://www.gxou.com.cn/ziyuan/kejian/2005dfyy/wangluo-lz/aspsql1.html) odbc(open database connectivity,开放数据库互连)是微软公司开放服务结构(wosa,windows open services architecture)中有关数据库的一个组成部分,它建立了一组规范,并提供了一组对数据库访问的标准api(应用程序编程接口)。这些api利用sql来完成其大部分任务。odbc本身也提供了对sql语言的支持,用户可以直接将sql语句送给odbc。 一个基于odbc的应用程序对数据库的操作不依赖任何dbms,不直接与dbms打交道,所有的数据库操作由对应的dbms的odbc驱动程序完成。也就是说,不论是foxpro、access还是oracle数据库,均可用odbc api进行访问。由此可见,odbc的最大优点是能以统一的方式处理所有的数据库。 一个完整的odbc由下列几个部件组成: 应用程序(application) odbc管理器(administrator) 该程序位于windows 95控制面板(control panel)的32位odbc内,其主要任务是管理安装的odbc驱动程序和管理数据源。 驱动程序管理器(driver manager)。驱动程序管理器包含在odbc32.dll中,对用户是透明的。其任务是管理odbc驱动程序,是odbc中最重要的部件。 odbc 驱动程序 是一些dll,提供了odbc和数据库之间的接口。 数据源 数据源包含了数据库位置和数据库类型等信息,实际上是一种数据连接的抽象。 应用程序要访问一个数据库,首先必须用odbc管理器注册一个数据源,管理器根据数据源提供的数据库位置、数据库类型及odbc驱动程序等信息,建立起odbc与具体数据库的联系。这样,只要应用程序将数据源名提供给odbc,odbc就能建立起与相应数据库的连接。 odbc api 在odbc中,odbc api不能直接访问数据库,必须通过驱动程序管理器与数据库交换信息。驱动程序管理器负责将应用程序对odbc api的调用传递给正确的驱动程序,而驱动程序在执行完相应的操作后,将结果通过驱动程序管理器返回给应用程序。 在访问odbc数据源时需要odbc驱动程序的支持。用visual c++ 5.0安装程序可以安装sql server、 access、 paradox、 dbase、 foxpro、 excel、 oracle 和microsoft text等驱动程序.在缺省情况下,vc5.0只会安装sql server、 access、 foxpro和dbase的驱动程序.如果用户需要安装别的驱动程序,则需要重新运行vc 5.0的安装程序并选择所需的驱动程序。   如何配置odbc数据源?     1、用户dsn:odbc用户数据源存贮了如何与指定数据库提供者连接的信息。只对当前用户可见,而且只能用于当前机器上。这里的当前机器是只这个配置只对当前的机器有效,而不是说只能配置本机上的数据库。它可以配置局域网中另一台机器上的数据库的。 2、系统dsn: odbc系统数据源存贮了如何指定数据库提供者连接的信息。系统数据源对当前机器上的所有用户都是可见的,包括nt服务。也就是说在这里配置的数据源,只要是这台机器的用户都可以访问。 3、文件dsn:odbc文件数据源允许用户连接数据提供者。文件dsn可以由安装了相同驱动程序的用户共享。这是界于用户dsn和系统dsn之间的一种共享情况。 4、驱动程序:这页列出了本机上所有安装的数据库驱动程序。里面列举了每个驱动程序的名称,版本,提供商公司,驱动程序文件名,以及安装日期。 5、跟踪:odbc跟踪允许创建调用odbc的日志,提供给技术人员查看。里面可设定日志的路径和文件名。技术人员通过这里面的信息可以看到本机上所有的数据库访问的时间,用户,以及出错信息等情况。也可以通过这个辅助调试应用程序,可以启动visual studio的分析器,来进行odbc的跟踪。 6、连接池:连接池允许应用程序重用原来打开的的连接句柄,这样可以节省到服务器的往返过程。 7、关于:最后这一页列出了所有的odbc的核心文件 连接数据库时出现问题的解答   问1:用microsoft.jet.oledb.4.0怎样连接带密码的access数据库? 答:access中有两层密码,即组密码和用户密码(也称数据库密码),组密码是在建立连接字符串时的输入的,用户名为admin,密码一般都为空。另一层密码即用户密码,则是打开数据库时所需要的即先检验的那层密码,设置这个密码是在access内以独占方式打开数据库,在菜单“工具”->“安全”->“设置数据库密码”选项里设置的。 如果你设置了组密码,则连接字符串为: "provider=microsoft.jet.oledb.4.0;data source=" + app.path + "\db\db2.mdb;password=组密码" 如果你设置了用户密码(数据库密码),则连接字符串为: "provider=microsoft.jet.oledb.4.0;data source=" + app.path + "\db\db2.mdb;databasepassword=用户密码" 如果你把这两层密码都设置了,则需要建立的连接字符串是: "provider=microsoft.jet.oledb.4.0;data source=" + app.path + "\db\db2.mdb;password=组密码;jet.oledb:databasepassword=用户密码 " 以上假设你的数据库相对路径是\db\db2.mdb。一般来说,组与用户密码建议不要设置,只有在多用户管理时才有可能要用得到 问2:不是说 dw 可以执行以单引号为首的注释行吗?但是在 dw 下给连接文件(“楼主”处的 conntest.asp)     mm_conntest_string = "driver={microsoft access driver (*.mdb)};dbq=f:\try\data\aaa.mdb"     这一行前加上一个单引号“'”把后,本来可以在本地浏览的有数据库连接的网页就打不开了,并显示出错信息,这是为什么?   答:你说的是事实。请注意“楼主”处说的“……dw 有个特点,就是检测连接文件(这里是 conntest.asp)时,会连注释(以单引号开头的行)一起解释、执行……”,请注意这段话的红字部分!即加上单引号后只保证在 dw 下我们看到的数据库连接关系仍有效、没有发生变化,并没有说带有数据库连接的网页仍可以正常显示。因此,在你给原来的连接字符串前加完单引号后应立即在该行下面加入这一行:   mm_conntest_string = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/aaa.mdb")   这样网页在本地和远程都可以正常显示了。      实际上最后使本地和远程环境下有数据库连接的网页能正常浏览的字符串是:     mm_conntest_string = "provider=microsoft.jet.oledb.4.0;data source="&server.mappath("data/aaa.mdb")     那么有人要问,为什么不把它作为 dw 中的自定义连接字符串在开始建立连接时就直接输入呢?哈哈!做个试验就清楚了,建立时 dw 根本就不认这个字符串! 所以要我们后来用手工补上。   可能还有人问,既然第二个手工补入的字符串能保证本地和远程的数据库连接,那么第一个由 dw 生成的连接字符串是不是可以删掉啊?   回答是:不行。如果删掉,在 dw 中对网站的编辑时,在[数据库]标签下的数据表的内容将显示“无”,形成数据库没有正确连接的假象,给你的编程造成混乱,这时有些人就会重新建立数据库连接,哈哈,这一来可就糟了!——— dw 会重新修理 connection 文件夹下的连接文件(本文中是 conntest.asp),把你后来补入的第二个字符串删掉! 现在 dw 8 有升级补丁了,可能在今后的升级中 dw 的者能补上这些“缺憾”吧。 问3:在 dw 中建立站点(例如名字为 try )和使用自定义连接字符串连接数据库均“测试”成功,但在连接文件(本例为conn.asp)中加了第二个连接字符串后, dw 下[应用程序]-[数据库]下“表”的内容显示为“无”?   答:这是由于使用了shift+enter创建下一行时在第一个字符串尾产生的换行标记
所致(见图1),许多做过网页或在论坛中发过帖子的朋友都有用shift+enter换行的习惯,产生的这个
标记往往不会被人们所注意,但它在这里会使第一个连接字符串产生语法错误,从而使数据库的连接关系发生改变。正确的方法应该是在第一个字符串尾直接打回车(即enter)键创建下一行,然后再粘贴第二个连接字符串。 更多教程http://jiaocheng.5d6d.com
/
本文档为【ASP动态网站如何通过自定义连接字符串与Access数据库建立连接】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索