asp连接access数据库时报未知错误及错误码-2147467259的解决方案
- 格式:doc
- 大小:13.89 KB
- 文档页数:4
WIN7 64位系统下asp+access 提示“数据库连接错误”怎么解决在XP和2003系统运行很好的asp+access数据库运行良好,移动到WIN7的IIS上却提示数据库连接错误错误,请检查数据库连接文件。
其实数据库连接文件并没有问题给Temp目录赋权配置asp+access使用环境,装完iis后使用asp程序发现数据库连接错误,可是检查链接代码完全正确。
原因在于MJ Jet引擎改变了临时目录的位置,大事有没有对临时目录给存取权限,接下来我们给系统盘:\Windows\ServiceProfiles \NetworkService\AppData\Local\Temp目录添加一个“Authenticated Users”的用户,其中appdata目录是隐藏的,在进入的时候直接在地址栏输入路径,或者在文件夹选项里设置显示隐藏文件夹,就可以找打了。
设置权限步骤:右击Temp文件夹,——属性——安全——单击“编辑”——“Temp的权限”对话框,点击“添加”,在下面的“输入对象名称来选择”输入“Authenticated Users,点确定”然后返回到Temp权限,将Authenticated Users的权限中完全控制打勾确定。
设置应用程序池先要设置应用程序池“Application Pool”为Classic .Net AppPool而不是默认的Default AppPool,可以在站点目录里对每个站点设置,也可以在站点进行单独设置。
选择好设置的站点后,点击右边的“基本设置”即可调出应用池设置对话框。
启用父路径直接在站点主页上选择ASP,双击找到“行为”组中将“启用父路径”设置为Ture就可以了(选择完毕记得点击右上角的应用哦)(接下来很重要,我按照如下操作以后,终于OK了)也许有人按照上面的配置,还是会出现数据库连接错误的提示,不要着急接下来,用管理员模式运行命令提示符,点击开始菜单输入cmd然后在上面出现的cmd.exe上面点击右键选择以管理员身份运行。
Asp连接access数据库时,报未知错误及错误码-2147467259的解决方案Asp连接access数据库时,报未知错误及错误码-21474672 59的解决方案ASP程序连接access数据库的代码如下:<%set conn=server.createobject("adodb.connection")'连接数据库的方法1:使用oledbstr="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")conn.open str%>结果在服务器上运行该程序时提示如下错误:err.Number显示的是-2147467259,err.Description显示的是“未知错误”迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP 程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!解决方案:为”C:\Windows\T emp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在“C:\Windows\T emp”目录添加一个有权限的“Authenticated Users”用户即可!Vista用户请在“C:\Windows\ServiceProfiles\NetworkService\AppData\Local\T emp”目录添加一个有权限的“Authenticated Users”用户即可!具体设置权限步骤:右击T emp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
ASP连接Access数据库几种常见方法在弹出来的“自定义连接字符串”对话框中,"连接名称"随便写一个。
“连接字符串”就要好好填写了。
当"使用此计算机上的驱动程序"时应用绝对路径:DRIVER={Microsoft Access Driver (*.mdb)};DBQ=d:\newgn\database\cnbruce.mdb否则“使用测试服务器上的驱动程序”采用Mappath转换路径:"Driver={Microsoft Access Driver (*.mdb)};DBQ="& server.mappath("/newgn/database/cnbruce.mdb")注:如果将要上传到网上去的页子就可以直接采用Mappath了点击“测试”,出现成功即爽。
附注:需要更多了解的,可以打开DW的帮助教程。
第一种连接和记录集分开声明<%db="db/darden.mdb"set conn=server.createobject("ADODB.connection")connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath("" & db & "")conn.open connstr%><%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingconn.closeset conn=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")Response.Redirect "homepage.asp"%>第二种连接和记录集一同声明<%set rs=server.createobject("adodb.recordset")sql="select * from ebook order by id desc"conn = "DBQ=" + server.mappath("book.mdb") + ";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"rs.open sql,conn,3,3rs.addnew............rs.update (rs.delete)rs.closeset rs=nothingresponse.write("<center><a href=viewdatabase.asp>显示文字</a></center>")%>ASP数据库简单*作教程<1>.数据库连接(用来单独编制连接文件conn.asp)<%Set conn = Server.CreateObject(ADODB.Connection)conn.Open DRIVER={Microsoft Access Driver (*.mdb)}; DBQ= & Server.MapPath(\bbs\db1\user.mdb)%>(用来连接bbs\db1\目录下的user.mdb数据库)<2>显示数据库记录原理:将数据库中的记录一一显示到客户端浏览器,依次读出数据库中的每一条记录如果是从头到尾:用循环并判断指针是否到末使用: not rs.eof如果是从尾到头:用循环并判断指针是否到开始使用:not rs.bof <!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.movefirst ---->(将指针移到第一条记录)while not rs.eof ---->(判断指针是否到末尾)response.write(rs(name)) ---->(显示数据表message中的name字段)rs.movenext ---->(将指针移动到下一条记录)wend ---->(循环结束)------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%>其中response对象是服务器向客户端浏览器发送的信息<3>增加数据库记录增加数据库记录用到rs.addnew,rs.update两个函数<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%set rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)rs.addnew 新增加一条记录rs(name)=xx 将xx的值传给name字段rs.update 刷新数据库------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><4>删除一条记录删除数据库记录主要用到rs.delete,rs.update<!--#include file=conn.asp--> (包含conn.asp用来打开bbs\db1\目录下的user.mdb数据库)<%dim namename=xxset rs=server.CreateObject(adodb.recordset) (建立recordset 对象)sqlstr=select * from message ---->(message为数据库中的一个数据表,即你要显示的数据所存放的数据表)rs.open sqlstr,conn,1,3 ---->(表示打开数据库的方式)-------------------------------------------------------while not rs.eofif rs.(name)=name thenrs.deleters.update 查询数据表中的name字段的值是否等于变量name的值xx,如果符合就执行删除,else 否则继续查询,直到指针到末尾为止rs.movenextemd ifwend------------------------------------------------------------------------------------------------------------rs.closeconn.close 这几句是用来关闭数据库set rs=nothingset conn=nothing-------------------------------------------------------%><5>关于数据库的查询(a) 查询字段为字符型<%dim user,pass,qq,mail,messageuser=request.Form(user)pass=request.Form(pass)qq=request.Form(qq)mail=request.Form(mail)message=request.Form(message)if trim(user)&x=x or trim(pass)&x=x then (检测user值和pass 值是否为空,可以检测到空格)response.write(注册信息不能为空)elseset rs=server.CreateObject(adodb.recordset)sqlstr=select * from user where user='&user&' (查询user数据表中的user字段其中user字段为字符型)rs.open sqlstr,conn,1,3if rs.eof thenrs.addnewrs(user)=userrs(pass)=passrs(qq)=qqrs(mail)=mailrs(message)=messagers.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(注册重名)%>(b)查询字段为数字型<%dim numnum=request.Form(num)set rs=server.CreateObject(adodb.recordset)sqlstr=select * from message where id=&num (查询message 数据表中id字段的值是否与num相等,其中id为数字型) rs.open sqlstr,conn,1,3if not rs.eof thenrs.deleters.updaters.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除成功)end ifrs.closeconn.closeset rs=nothingset conn=nothingresponse.write(删除失败)。
Access常见错误及解决方案A c c e s s常见错误及解决方案1. 为什么在创建自定义应用程序时,会出现以下错误提示?若出现该对话框,可能是在【自定义Web应用程序】对话框的【Web位置】文本框没有输入地址,或者Access无法识别输入的网站。
注意系统要求输入的地址必须为有效的,而且用户对其有“完全控制”的权限。
2. 删除某个表对象时,为何出现以下提示?删除表对象之前,需确保已经删除该表与其他的表建立的表关系,否则会弹出该提示框。
Access的这种机制主要用来保护数据库的完整性。
3. 运行追加查询时,为何有时会收到这样一条错误消息:“Microsoft Access不能在追加查询中追加所有记录。
”?此错误消息可能由以下原因之一引起:⑴类型转换失败。
用户可能试图将一种类型的数据追加到另一种类型的字段。
例如,将文本追加到数据类型设置为“数字”的字段就会导致出现此错误。
检查目标表中字段的数据类型,然后确保在每个字段中追加正确类型的数据。
⑵键冲突。
用户可能试图将数据追加到属于表主键的一个或多个字段,例如ID字段。
检查目标表的设计,查看主键(或任何索引)的“无重复”属性是否已设置为“是”,然后检查要追加的数据以确保未违反目标表的规则。
⑶锁定冲突。
如果目标表在“设计”视图中打开或由网络上另一个用户打开,这可能导致记录锁定,致使查询无法追加记录。
确保所有人关闭了数据库。
⑷验证规则冲突。
检查目标表的设计,查看存在哪些验证规则。
例如,如果某个字段为必填字段,但用户的查询并未为其提供数据,将会出现错误。
此外,检查目标表中是否存在任何将“允许空字符串”属性设置为“否”的文本字段。
如果查询未向此类字段追加任何字符,将会出现错误。
还有其他的验证规则也可能导致问题,例如,“数量”字段可能存在以下验证规则:>=10。
在此情况下,无法追加数量小于10的记录。
4. 在执行删除查询时,为什么有时会出现这样一条错误消息:“无法从指定的数据表中删除”?若在删除查询中包含多个数据表,而“唯一的记录”属性被设置为否,就会出现此错误。
ASP访问ACCESS出错提示简要解释2本文由品郁贡献ASP访问ACCESS出错提示简要解释在Asp页面中向记录集取长text型数据时,出现如下错误现象时:MicrosoftOLEDBProviderforODBCDrivers错误'80040e21'Errorsoccurred可有以下三种解决办法:(一)使用rs.opensql,conn,1,3方式打开记录集(二)将该列放在第一列取出,比如comment里存放有较长的text内容,取记录集内容的时候,先来个comment=rs("comment")把这个捣蛋的东西先取出来放到内存变量中,然后再操作其它的字段。
由于一般长text内容不会在第一个显示,因此一般都要取出来放到内存变量中。
(三)改为oledb方式连接数据库。
在此方式连接数据库时,不会出现该错误(起码我没有遇到过)。
在我的系统中,将现在的oledb连接方式改成odbc连接方式后,错误就马上出现了。
此错误怀疑是由于Asp向odbc返回的记录集取数据的机制有些问题造成。
建议采用第三种方法避免该错误。
提问:那么以下错误类型是什么意思Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e21' The request properties can not be supported by this ODBC Driver数据库字段长度不够出错信息Microsoft OLE DB Provider for ODBC Drivers error '80040e21' The request properties can not be supported by this ODBC Driver.//_ScriptLibrary/Recordset.ASP, line 466原因When the Recordset DTC has the cursor location property set to "2 - Use Server Side Cursors" (the default value), it cannot return multiple recordsets.当the Recordset DTC的游标设为2(服务器端游标,默认值)时,无法返回多个记录集RESOLUTIONUnder the Properties dialog box for the Recordset DTC, go to the Advanced tab and change the cursor location from "2 - Use Server-Side Cursor" to "3 - Use Client-Side Cursor."asp错误代码错误代码错误消息和扩展信息ASP0100 Out of memory(内存溢出)ASP0101 Unexpected error(函数返回e x c e p t i o n _ n a m e )ASP0102 Expecting string input(期待字符串输入)ASP0103 Expecting numeric input(期待数字量输入)ASP0104 Operating not allowed(操作不允许)ASP0105 Index out of range(数组下标溢出)ASP0106 Type Mismatch(数据类型不匹配)ASP0107 Stack Overflow(处理的数据量超过了允许的范围)ASP0115 Unexpected error(出现在外部对象中的可捕获的错误e x c e p t i o n _ n a m e,脚本不能继续运行)ASP0177 S e r v e r.CreateObject Failed(无效的P r o g I D )ASP0190 Unexpected error(当释放外部对象时,出现的可捕获的错误)ASP0191 Unexpected error(在外部对象的O n S t a r t P a g e 方法中出现的可捕获的错误)ASP0192 Unexpected error(在外部对象的OnEndPage 方法中出现的可捕获的错误)ASP0193 OnStartPage Failed(在外部对象的O n S t a r t P a g e方法中出现错误)ASP0194 OnEndPage Failed(在外部对象的OnEndPage 方法中出现错误)ASP0240 Script Engine Exception(脚本引擎从o b j e c t _ n a m e抛出异常e x c e p t i o n _ n a m e )ASP0241 CreateObject Exception(object_name的C r e a t e O b j e c t方法所导致的异常e x c e p t i o n _ n a m e ) ASP0242 Query OnStartPage Interface Exception(查询对象o b j e c t _ n a m e的O n S t a r t P a g e或O n E n d P a g e方法所导致的异常e x c e p t i o n _ n a m e )ADO 错误代码除了在 Error 对象和 Errors 集合中说明的提供者错误之外,ADO 本身也将错误返回到运行时环境的异常处理机制之中。
/download/info /1701.htm/Program/Asp/112 TM562008.html<%dim ConnStringset conn=server.CreateObject("adodb.connection")ConnString="provider=microsoft.jet.oledb.4.0;data source=" & server.MapPath("#kucun.mdb") conn.open ConnString'连接数据库%>2000下使用asp访问数据库时,在conn.open始终发生8007007f错误,重装IIS和access均得不到解决。
我在网上查到的解决办法是将oledb32.dll 解压到以下两个目录,然后重启服务器:1) C:\WINNT\system32\dllCache2) C:\Program Files\Common Files\System\OLE DB<%dim conn,exec,rsset conn=server.createobject("adodb.connetion")conn.open "driver={microsoft access driver(*.mdb)};dbq="&server.mappath("show.mdb")exec="select * from list"set rs=server.createobject("adodb.recordset")rs.open,exec,conn,1,1%>ASP中连接数据库的错误解决新解决办法Provider 错误80004005 未指定的错误的新解决办法.这两天运行的好好的点击统计程序突然出错了,显示的就是:------------------------------------------Provider 错误80004005未指定的错误------------------------------------------在网上找了一大圈,发现大家提供的办法我都试过了,没有一个有作用的.方法有以下:1.开始运行regsvr32 jscript.dll (命令功能:修复Java动态链接库)开始运行regsvr32 vbscript.dll(命令功能:修复VB动态链接库)开始运行iisreset (命令功能:重启IIS)开始运行msjetoledb40.dll2.给系统临时文件夹%windir%/temp/ 加上IUSR_COMPUTER 用户的读写权限3.ASP连接Access数据库的时候,如果频繁刷新页面,出现80004005 未指定错误,数据库不能连接,但是过大约10多分钟后再刷新就可以连接。
Windows200364位下ASP无法连接Access数据库
症状位Windows 下面配置好IIS后运行ASP页面如果里面有连接access数据库的代码就会出现错误警告
ADODB Connection 错误 a e a
未找到提供程序该程序可能未正确安装
/连接网站内容管理数据库 asp 行
原因 IIS是以位方式来运行的它只能加载位模块不能加载位模块而访问access数据库的jet引擎只有位的没有位因此无法被IIS 加载
解决思路让IIS以位方式运行从而可以调用位的jet引擎
解决方法在命令行窗口输入
cscript C \inetpub\adminscripts\adsutil vbs SET W SVC/AppPools/Enable bitAppOnWin
上面方法的负面效应因为IIS被改成以位方式运行所以它只能加载位模块如果改之前 IIS加载了其他位的模块则改之后就无法加载这个模块了如果想继续使用这个模块的功能只能寻找这个模块的位版本并加载
如果希望IIS重新以位方式运行可以输入
lishixinzhi/Article/program/net/201311/13269。
ASP数据库连接设置问题的解决方法.txt如果你同时爱几个人,说明你年轻;如果你只爱一个人,那么,你已经老了;如果你谁也不爱,你已获得重生。
积极的人一定有一个坚持的习惯。
ASP数据库连接设置问题的解决方法1 设置问题制作动态网页时,通常,需要与数据库建立连接。
是:第一步,在“ODBC数据源管理器”对话框“系统DSN(Data Source Name)”选项卡的“系统数据源”列表框中,添加新的“系统数据源(DSN)”。
第二步,为站点建立数据库连接。
在站点的“connections”子目录中,创建一个辅助ASP文件,文件名与“连接名称”相同,如,tz.asp。
该文件的内容如下<%' FileName="Connection_odbc_conn_dsn.htm"' Type="ADO"' DesigntimeType="ADO"' HTTP="false"' Catalog=""' Schema=""Dim MM_tz_STRINGMM_tz_STRING = "dsn=tz;"%>注:其中tz就是连接名称。
此后,凡是调用数据库数据的动态网页的开头,均包含上述语句。
一般说来,使用此种方法制作的动态网页,上传到网络服务器上后,均不能正常显示。
因为,普通一般用户是无法设置网络服务器的DSN。
2 解决问题的方法解决问题的方法是:涉及数据库的动态网页用Dreamweaver MX提供的方法制作完成后(且用PWS或IIS调试成功),再用下述语句<%dim conndim MM_tz_STRINGMM_tz_STRING="DBQ="+server.mappath("database/tz.mdb")+";DefaultDir=;DRIVER={Micr osoft Access Driver (*.mdb)};"set conn=server.createobject("ADODB.CONNECTION")conn.open MM_tz_STRING%>替代那个辅助网页tz.asp中的原有语句即可!注意以下几点:1、数据库放置的目录,上述语句中表明tz.mdb数据库,存放在当前网页所在目录的子目录(database)中。
ASP连接ACCESS常见问题及解决方法作者:日期: 2005-3-20 2:00:03显示选项: 文字背景字号字型自动滚屏[左键停止]问题:我在asp上挂上access数据库,发现它不支持Group by 或 Order by 子句,请问是何原因?SELECT * FROM zyckb group by ckdwdm where cksj>cdate(1998/12/31)Microsoft OLE DB Provider for ODBC Drivers 错误 80040e21 ODBC 驱动程序不支持需要的属性。
1 group子句只能用在Where子句后面。
2 直接使用 Microsoft.Jet.OLEDB.4.0 一层接口:adoConnection.open"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath ("/") & "xxx.mdb"不要使用Microsoft OLEDB Provider for ODBC Drivers + Microsoft Access Driver (*.mdb)(Access 的 ODBC Driver)两层接口: adoConnection.open"PROVIDER=MSDASQL.1;Driver=Microsoft Access Driver(*.mdb);DBQ=" & Server.MapPath ("/") & xxx.mdb"/msg23/qa27.shtml80004005 及其它错误消息的疑难解答---------------------------------------------这篇文章中的信息适用于:Microsoft Data Access Components versions 1.5, 2.0, 2.1, 2.5 Active Server PagesMicrosoft Visual InterDev, version 1.0-------------------------------------------概要本文详细讲述了Microsoft 数据访问组件(MDAC) 收到0x800040005 错误的一些常见原因,MDAC 包括 ActiveX 数据对象、OLE DB 和远程数据服务(RDS)。
我的ASP经验之路(4)--连接access数据库的两种方法、读取数据库内容这篇主要介绍以下两个问题:asp连接access数据库常用的两种方法、asp创建记录集与如何读取数据库的内容。
ASP最常连接的是ACCESS与MSSQL两种数据库,本文先介绍简单的连接ACCESS数据库的两种常用方法。
假设数据库名称为data.mdb,位于根目录下,与conn.asp文件同一目录。
连接数据库文件conn.asp写法如下:第一种:<%dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库%>第二种:<%dim conndim connstrConnstr="Provider=;Data Source=" & Server.MapPath("data.mdb")Set conn = Server.CreateObject("ADODB.Connection")Conn.Open Connstr%>接下来,我们看下asp是如何创建记录集以及如何来读取数据库里的内容的。
首先,我们要建一个数据库,里面放些需要读取的内容。
1、建立一个数据库文件,名称估且命为data.mdb ,里面准备存放一些公司企业的电话地址等内容。
数据库中建一个名为company的表,表设计以下四个字段:companyname,tel,address,website (公司名称,电话,地址,网址),字段类型全部选择“文本”,字段大小设置为250,创建好表后,打开表,自己输入随意输入几条记录值(所有建立数据库的具体操作本文略过)建好后,表设计如下图:打开表,内容如下:2、新建一个文件名为index.aspindex.asp文件代码里,首先要建立数据库连接,代码如上面介绍:dim conndim connstrconnstr="DBQ="+server.mappath("data.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};" set conn=server.createobject("ADODB.CONNECTION") '创建数据库连接对象conn.open connstr '连接数据库创建记录集:set rs=server.CreateObject("adodb.recordset") '创建rs记录集sql="select * from [company]" '读取数据库的SQL语句串rs.open sql,conn,1,1 '打开记录集读取数据库代码:结合前面介绍过的do while ...loop语句来循环读取多条记录内容<table width="100%" border="0" cellspacing="0" cellpadding="0"><%do while not rs.eof'rs.eof意思是最后一条记录,rs.bof的意思是第一条记录,所以这句话的意思是:当不是最后一条记录时,输出下面的代码%><tr><td height="24"><%=rs("companyname")%></td><td><%=rs("tel")%></td><td><%=rs("address")%></td><td><a href="<%=rs("website")%>" target="_blank"><%=rs("website")%></a></td></tr><%rs.movenext '移到下一条记录loop%></table>所有代码放在一起就是index.asp的所有代码。
ASP连接数据库报错的几种原因ASP连接数据库的方法一般有两种,分别是使用OLE DB字符串建立和使用ODBC 字符串建立。
一般和ASP配套的数据库就是Access和SQLServer,小型网站尤其以Access数据库为多。
很多客户在自己编程的过程中,对数据库连接代码一直搞不清楚如何来写,造成程序运行后提示各种各样的错误。
本篇文章就帮助大家解决ASP连接数据库的各种问题。
一个典型的错误是“不能打开注册表关键字”,具体出错信息如下:Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005' [Microsoft][ODBC Microsoft Access Driver]常见错误不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x530 Thread0x13f8 DBC 0x2167024 Jet'。
正确的连接数据库代码应该怎么写呢?下面给出示例代码:1、ASP连接SQLServer数据库Set conn=Server.CreateObject("ADODB.Connection")connstr="Provider=SQLOLEDB;Server=local;UID=sa;PWD=123;DataBase=mydb"conn.Openconnstr其中Server是SQLServer数据库的地址,如果和空间在一台服务器就用local,不在一台服务器就用IP地址。
UID是数据库用户名,PWD是数据库密码,DataBase 是数据库名。
2、ASP连接Access数据库Set conn=Server.CreateObject("ADODB.Connection")'使用OLE DB字符串建立connstr="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=指向mdb的物理路径"'使用ODBC字符串建立connstr="DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=指向mdb 的物理路径"conn.Openconnstr两种connstr字符串任选其一,指向mdb的物理路径要用Server.Mappath()函数。
win7 64位的IIS7配置asp与access的连接问题文章作者:Enjoy转载请注明原文链接文章作者:Enjoy转载请注明原文链接红色字是本人在原作者基础上所发现的最近升级了电脑主机,淘宝买的,卖家把我装好了64位的win7和一些基本程序。
自己有个小程序是asp的,要让它运行起来,于是装上IIS(之前在添加删除程序里,现在叫打开或关闭Windows功能,找了好一会儿),搭好web后,发现一直在运行,页面一页空白。
下段内容根据我的情况,我没有用到,我也是当初没换系统前做的网站ASP+access2003版***************************************************************************************************************************** 好久没碰asp程序了,但还是有点印象的。
于是打开程序,找到连接数据库那段后,加了句:Response.Write Err.Description,提示没记录下来,大概是没有找到合适的应用程序。
看了下机子上,有word,excel等,没access。
重新装了下office2003,有了access。
web运行,提示:未找到提供程序。
该程序可能未正确安装。
原程序Conn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" &Server.MapPath(AccessPath&"/"&AccessFile)Conn.Open我改成:Conn.open "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=" &Server.MapPath(AccessPath&"/"&AccessFile)&";"提示:[Microsoft][ODBC 驱动程序管理器] 未发现数据源名称并且未指定默认驱动程序***************************************************************************************************************************** 以往的经验,可能没开启父路径,在IIS里找了下启用了,还是一样。
关于ASP访问ACCESS数据的错误的探讨关于ASP访问ACCESS数据的错误的探讨前天,N久以前做的一个ACCESS数据库的程序出错了,程序都没有改动过,之前好好的,突然就不行了。
错误信息如下:----------------------------------Microsoft OLE DB Provider for ODBC Drivers 错误''80004005''[Microsoft][ODBC Microsoft Access Driver]常见错误不能打开注册表关键字''Temporary (volatile) Jet DSN for process 0x728 Thread 0x854 DBC 0x276fb44 Jet''。
----------------------------------由于最近一台服务器被人攻击垮掉了正在重装,没时间理这个问题。
后来在朋友(是该程序的用户哦)的多翻催促下,决定搞定它。
一开始,还真不摸不清是怎么回事。
在GOOGLE上搜了很多,众说纷纭,过滤去一堆没有结果的垃圾信息,得到下面几个可能原因:1。
微软已经不更新ODBC,需要改用JET的方式连接ACCESS数据库文件;2。
系统目录的权限发生的变更。
也有老帖子说什么原因是:“ACCESS数据库文件是ACCESS97版本的”,这个无须考虑,我用的是ACCESS2000数据库。
对于第一个原因,原来的连接字串如下:--ODBC连接方式------------------------mdbpath=server.MapPath("my.mdb.asp")CnnStr = "DBQ=" & mdbpath & ";DRIVER={Microsoft Access Driver (*.mdb)};uid=admin;pwd="-------------------------------------改用JET连接后连接字串为:---JET连接方式---------------------CnnStr = "Provider=Microsoft.Jet.OLEDB.4.0;User Id=admin;Data Source="& mdbpath &"'';Password=luntanbbs"-------------------------------------测试过后无效,虽然提示的错误信息有点不同:----------------------------------Microsoft JET Database Engine 错误''80004005'' 未指定的错误----------------------------------最后检查第二个原因:系统目录权限不足。
ASP如何连接access当碰到这种情况时怎么办????一、对电脑进行基本配置,这一步在开始学Asp时基本搞定,这里就省略不写。
二、安装access引擎,AccessDatabaseEngine/AccessDatabaseEngine_X64你电脑装的是32位的office就用32位的,是64位的office就用64位的。
此时如果安装有意外请看第五步。
(以下以装64位引擎为例说明)三、装好后用Windows图标键+R键打开应用程序搜索面板。
输入odbcad32单击确定进入ODBC数据库管理器切记:不要使用用户dsn配置,一定要使用系统DSN来配置,点击系统DSN进入以下页面单击添加选中Microsoft access driver(*.mbd,*accdb)双击进入配置面板进行配置取个名,随便填个说明,点击选择,选择你的数据储存的位置的.mdb 文件添加进来。
单击确定。
四、修改Windows的另一配置打开C/Windows,找到temp文件夹右击,属性,安全,在组或用户名下手动添加一个everyone,下面权限选完全控制,设置完后确定。
五、打开Internet信息服务(IIS)管理器,运行相应的程序,结果成功。
如图接下来说明一种意外情况:(64位系统装了32位的office的)在你安装64位引擎时可能会提示以下情况不要急,也不用卸载office,因为你卸载了也装不上引擎,有残留。
这是用Windows图标键+R键打开程序搜索面板输入cmd确定进入命令提示面板如果你的引擎程序是放在桌面的,输入以下路径后回车再输入引擎名AccessDatabaseEngine_X64/passive 后回车,程序就自动安装了,也不会提示有错。
等待它自动安装完后,再回到步骤三一步一步操作就没问题了。
六、使用书本第八章程序测试以下就可以知道结果,希望能帮到你,祝你好运。
如果装完后运行Access无法启动的情况重新安装的操作系统,启动Access后,系统弹出一个Office安装配置框,两轮进度条完毕后,配置框消失,但Access却依然没有出现,看看Taskgmr,没有任何Access 的踪迹。
ASP连接Access数据库的⼏种⽅法1. 相对与⽐较⽼的环境,建议使⽤第⼆个set dbconnection=Server.CREATEOBJECT("ADODB.CONNECTION")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & DBPathSQL="select * from auth where id='" & user_id &"'"SET uplist=dbconnection.EXECUTE(SQL)2.win2003以上的机器,建议⽤此⽅法,效率更⾼set dbconnection=Server.CreateObject("ADODB.Connection")DBPath = Server.MapPath("customer.mdb")dbconnection.Open "provider=microsoft.jet.oledb.4.0;data source="&dbpathSQL="select * from auth where id='" & user_id &"'"SET uplist=dbconnection.EXECUTE(SQL)3.DBPath = Server.MapPath("customer.mdb")set session("rs")=Server.CreateObject("ADODB.Recordset")' rs=Server.CreateObject("ADODB.Recordset")connstr="provider=microsoft.jet.oledb.4.0;data source="&dbpathSQL="select * from auth where id='" & user_id &"'"session("rs").Open sql,connstr,1,34. 建odbc源xxxset conn=server.createobject("Adodb.connection")conn.open "DSN=xxx;UID=;PWD=;Database=customer5、附上⼀个经常⽤的sqlserver与access通⽤的连接数据库代码<%Const DataBaseType=1If DataBaseType=0 thenDBPath="/jb51/news.asp"SqlNowString = "Now()"ystr=truenstr=falsesuiji="rnd(id)"Else'如果是SQL数据库,请认真修改好以下数据库选项DataServer = "wwwjb51net" '数据库服务器IPDataUser = "jb51net" '访问数据库⽤户名DataBaseName = "jb51net" '数据库名称DataBasePsw = "密码" '访问数据库密码SqlNowString = "getdate()"ystr=1nstr=0suiji="newid()"End ifOn Error Resume NextIf DataBaseType = 1 ThenConnStr="driver={SQL Server};server="&dataserver&";UID="&datauser&";PWD="&databasepsw&";Database="&databasenameElseConnStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Server.MapPath(DBPath)End IfSet conn = Server.CreateObject("ADODB.Connection")conn.open ConnStrIf Err Then Err.Clear:Set conn = Nothing:Response.Write "数据库连接出错,请检查Conn.asp⽂件中的数据库参数设置。
ASP与ACCESS数据库连接的讨论赵志娟【摘要】ASP是Web程序设计技术之一,它使用ADO技术对数据库进行存取.ADO是MICROSOFT目前主要的数据存取技术,它是MICROSOFT各种数据存取技术,如ODBC、DAO、RDO、OLE-DB演化发展的结果.讨论了ASP及ACCESS文件中实现数据库的连接,如何实现数据库的读写,访问数据的方法及应用、程序错误的处理.【期刊名称】《上海大中型电机》【年(卷),期】2013(000)003【总页数】5页(P68-72)【关键词】数据库;ASP;ACCESS;ADO;ODBC;Connection对象;Recordset对象;错误处理【作者】赵志娟【作者单位】上海电气集团上海电机厂有限公司,上海 200240【正文语种】中文0 引言产生于20世纪90年代初的万维网(World Wide Web)在迅速发展的今天,是互联网非常重要的信息资源网,遵循超文本传输协议,以超文本或超媒体的形式传送各种各样的信息,为用户提供具有友好的图形化界面,以查阅互联网上的各类信息。
信息的实现方式就是通过各类编程语言。
本文以ASP、ACCESS为例讨论两种程序数据库的访问和程序错误的处理。
1 ASP与ACCESS概述1.1 ASPASP(Active Server Pages)是一套微软开发的服务器端脚本环境,它内含于IIS(Internet Information Server)或 PWS(Personal Web Server)中,是微软公司开发的代替CGI脚本程序的一种应用,可以与数据库和其它程序进行交互,是一种简单、方便的编程工具,是运行动态、交互的Web服务器应用程序。
ASP的工作原理框图如图1所示。
当客户端浏览器上某用户申请一个*.asp的文件(ASP文件的后缀名为.asp)时,Web服务器就会响应该HTTP请求,并调用ASP 引擎,解释被申请文件,最后输出标准的HTML格式文件传送给客户端浏览器,由浏览器解释运行,并显示出结果。
Asp连接access数据库时,报未知错误及错误码
-2147467259的解决方案
Asp连接access数据库时,报未知错误及错误码
-2147467259的解决方案
ASP程序连接access数据库的代码如下:
<%
set conn=server.createobject("adodb.connection")
'连接数据库的方法1:使用oledb
str="provider=microsoft.jet.oledb.4.0;data source=" & server.mappath("学习.mdb")
conn.open str
%>
结果在服务器上运行该程序时提示如下错误:
err.Number显示的是-2147467259,
err.Description显示的是“未知错误”
迷惑了很久,当时在课堂上一直找不到原因。
之前运行其他ASP程序都是好好的,一遇到数据库就出错了。
很尴尬,跟学生解释说服务器出了点小问题,随后我解决了再告诉大家。
硬着头皮接着讲课,其实很心虚。
一下课,猛蹬着自行车回到家中,立马上网搜索答案。
找了
很久,决定下次上课试试这些方法行不行。
下次上课我提早到教室。
心说这次解决不了那以后就回机房上课好了。
结果一次就成功了!欢呼!
解决方案:为”C:\Windows\Temp“目录添加用户Authenticated Users,为该用户开放所有权限。
(1)WindowsXP、Windows 2003用户请在
“C:\Windows\Temp”目录添加一个有权限的“Authenticated Users”用户即可!
Vista用户请在
“C:\Windows\ServiceProfiles\NetworkService\AppData\Loc al\Temp”目录添加一个有权限的“Authenticated Users”用户即可!
具体设置权限步骤:右击Temp文件夹,选择“属性”->“安全”->“编辑”->“添加”,在下面的“输入对象名称来选择”中输入Authenticated Users,确定-> 返回到“Temp 的权限”,将Authenticated Users的权限中的完全控制给勾上。
(2)临时测试解决方案。
WindowsXP用户:打开IIS,右击相应网站,选择“属性”->“目录安全性”->“编
辑”->“浏览”->“高级”->“立即查
找”->“Administrator”->“确定”->“确定”->“确
定”->“确定”。
但是有的时候会出现这样的问题:文件夹右键时没有“安全”选项卡。
如何调出安全选项卡呢?请接着看下文:
让文件夹属性出现“安全”选项卡
1:查看硬盘文件系统是FAT32还是NTFS
打开“我的电脑”,右击盘符,例如D盘,点击“属性”,便会看到文件系统是FAT32还是NTFS了
2:让FAT32文件系统中的文件夹属性里出现“安全”选项卡要达到这一目的,只能将磁盘的文件系统类型由FAT32转换为NTFS,转换方式:
(1)点开始程序附件命令提示符(或在运行里输入“CMD”);
(2)打开窗口以后,在光标的提示符下输入“convert e:/fs:ntfs /v”,然后回车。
注意在“covert”的后面有一个空格。
这里是转换E盘,如果要转换C盘,则将e改成c;
(3)接着系统会要求你输入X盘的卷标,然后回车。
卷标在“我的电脑”中点X盘,然后看它的属性可以找到,或者也可以在命令行中输入“vol C: ”,便可查看C盘卷标。
这样就可简单地转换分区格式为NTFS了。
这个方法只用于FAT32转为NTFS,不能将NTFS转为FAT32。
文件资料不会丢失。
3:让NTFS文件系统中的文件夹属性里出现“安全”选项卡如果D盘文件系统类型是NTFS,但其中的文件夹属性中没有出现安全选项卡,则按下面的操作步骤来设置:打开“我的电脑”,点击菜单栏“工具”——“文件夹选项”,切换到“查看”选项卡,在里面找到“使用简单文件共享(推荐)”,将其前面的复选框中的勾去掉。
现在重新查看D盘中的某一个文件夹属性,里面便有了“安全”选项卡这一项。