注册 登录
编程论坛 ASP技术论坛

asp连接问题

zacom 发布于 2007-09-16 00:22, 985 次点击

程序运行后显示
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80004005)
[Microsoft][ODBC Microsoft Access Driver]常见错误 不能打开注册表关键字 'Temporary (volatile) Jet DSN for process 0x354 Thread 0xe44 DBC 0x7f5074 Jet'。

我的系统是SP2,用了:
对于Windows XP的用户,也许你会茫然于更改文件夹的安全属性。因为在默认情况下,Windows XP使用了简单文件共享方法,所以,当你点 属性 的时候是看不到 安全 选项卡的。具体操作如下:

我的电脑-->文件夹选项-->查看-->取消 使用简单文件共享(推荐) 的勾选 即可。你查看一下你要更改文件夹的属性,是不是多了一个 安全 选项卡呢?
也不行,请各位帮忙

21 回复
#2
madpbpl2007-09-16 00:43

数据库链接文件的问题,路径不对,把代码贴出来,并且说明一下相对位置

#3
zacom2007-09-16 00:45
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
<html>
<head>
</head>
<body>
<%
set conn=server.createobject("adodb.connection")
set sel=server.createobject("ADODB.recordset")
conn.open "Driver=Driver do Microsoft Access (*.mdb);Uid=admin;pwd=;DBQ="&server.MapPath("/db.mdb")
mysqlt="insert into client (name,Birthday) values ('你好','1990-01-01')"
conn.execute mysql
%>
已添加完成
</body>
</html>
请帮忙看看
#4
madpbpl2007-09-16 01:30
<html>
<head>
</head>
<body>
<%
set conn=server.createobject("adodb.connection")
set sel=server.createobject("ADODB.recordset")
conn.open "driver={microsoft Access driver (*.mdb)};dbq="&Server.MapPath("db.mdb")
mysqlt="insert into client (name,Birthday) values ('你好','1990-01-01')"
conn.execute mysqlt
%>
已添加完成
</body>
</html>
先试试这个
你的数据库db.mdb相对于现在这个文件的路径是什么?

[此贴子已经被作者于2007-9-16 11:23:27编辑过]

#5
zacom2007-09-16 08:51
弄不能弄好看点,看不清楚
#6
madpbpl2007-09-16 11:24
不好意思,没有注意。上面已调整
#7
zacom2007-09-16 11:52
可以了,真强,能告诉我之前我不能运行的原因吗?
#8
zacom2007-09-16 12:05
str=str&"values('"+t1+"','"+t2+"','"+request.form("r1")+"','"+t3"','"+t4+"')"
这格式这样写对吗,运行时显示还没写完
#9
madpbpl2007-09-16 12:23
以下是引用zacom在2007-9-16 11:52:45的发言:
可以了,真强,能告诉我之前我不能运行的原因吗?

conn.open "Driver=Driver do Microsoft Access (*.mdb);Uid=admin;pwd=;DBQ="&server.MapPath("/db.mdb")
这种链接数据库的方法我没见过,你可以去搜索一下数据库链接方法。

#10
madpbpl2007-09-16 12:25
以下是引用zacom在2007-9-16 12:05:55的发言:
str=str&"values('"+t1+"','"+t2+"','"+request.form("r1")+"','"+t3"','"+t4+"')"
这格式这样写对吗,运行时显示还没写完

这句应该前面还有一句inset into,你要连起来看
response.write str 看看结果,应该就可以找到错误的原因了
就你这个句子,看看改成这样行不行
str=str&"values('"+t1+"','"+t2+"','"+request.form("r1")+"','"+t3+"','"+t4+"')"

[此贴子已经被作者于2007-9-16 12:35:10编辑过]

#11
zacom2007-09-16 13:12
改后错误为:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。


程序为下:
<html>
<head>
<title>
使用事务处理方法
</title>
</head>
<%
t1=request.form("t1")
t2=request.form("t2")
t3=request.form("t3")
t4=request.form("t4")
set conn=server.createobject("adodb.connection")
conn.open "Driver=Driver do Microsoft Access (*.mdb);Uid=admin;pwd=;DBQ="&server.MapPath("注册信息.mdb")
str="insert into client (Name,Birthday,Living, Notes,vip)"
str=str&"values('"+t1+"','"+t2+"','"+request.form("r1")+"','"+t3+"','"+t4+"')"
conn.begintrans
conn.execute str
if(t1=" "or t2=" "or t3=" "or t4=" ")then
conn.rollbacktrans
response.write"提交失败"
end if
conn.close
set conn=nothing
%>
</body>
</html>
#12
hmhz2007-09-16 14:01
t1 t2 t3 t4 r1 看看这5个字段分别是什么类型的

比如t1是数字类型的,就把前后单引号去掉,直接(t1,'"+t2+"','"+request.form("r1")+"','"+t3+"','"+t4+"')

#13
zacom2007-09-16 15:09
看后也不知道怎么改.很晕!!!!!!!
#14
madpbpl2007-09-16 16:25
拿下面这个来举例
'"+t2+"'
t2对应的字段是birthday,如果birthday的类型是文本则这样写是对的,如果birthday的类型是数字,则改成
"+t2+"
还有把
str="insert into client (Name,Birthday,Living, Notes,vip)"
改成
str="insert into client (Name,Birthday,Living,Notes,vip)"
看看是不是因为空格造成的错误
#15
zacom2007-09-16 16:58
改了符号,出现新的错误,
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
/ASP/23.asp, 第 17 行
怎么办好
#16
madpbpl2007-09-16 18:33
str="insert into client (Name,Birthday,Living,Notes,vip)"
改成
str="insert into client (t1,t2,r1,t3,t4)"
相应的数据的字段也改成t1,t2,r1,t3,t4

#17
madpbpl2007-09-16 18:51
<html>
<head>
<title>
使用事务处理方法
</title>
</head>
<%
t1=request.form("t1")
t2=request.form("t2")
t3=request.form("t3")
t4=request.form("t4")
set conn=server.createobject("adodb.connection")
conn.open "Driver=Driver do Microsoft Access (*.mdb);Uid=admin;pwd=;DBQ="&server.MapPath("注册信息.mdb")
conn.begintrans
str="insert into client (t1,t2,r1,t3,t4)"
str=str&"values('"+t1+"','"+t2+"','"+request.form("r1")+"','"+t3+"','"+t4+"')"
conn.execute str
if (t1="" or t2="" or t3="" or t4="") then
conn.rollbacktrans '回滚
conn.close
set conn=nothing
response.write "交易失败,回滚至修改前的状态!"
response.end
else
conn.committrans '提交事务
conn.close
set conn=nothing
response.write "交易成功!"
response.end
end if
conn.close
set conn=nothing
%>
</body>
</html>

[此贴子已经被作者于2007-9-16 19:08:34编辑过]

#18
zacom2007-09-16 19:59

我把你的运行后也不行,显示如下:
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句包含下列未知的字段名: 't1'。确定键入的名称是正确的, 然后重试。

#19
madpbpl2007-09-16 20:01
我在16楼说明了,数据库的相对应字段也要改成t1,t2,r1,t3,t4
#20
zacom2007-09-16 20:37

字段改了,又出问题:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E07)
[Microsoft][ODBC Microsoft Access Driver] 标准表达式中数据类型不匹配。
/ASP/25.asp, 第 17 行

#21
madpbpl2007-09-16 21:38

看了楼主的数据库,把程序补上
<html>
<head>
<title>
使用事务处理方法
</title>
</head>
<%
t1=request.form("t1")
t2=request.form("t2")
t3=request.form("t3")
t4=request.form("t4")
r1=request.form("r1")
r1=cstr(r1)
if r1="是" then
r1="1"
else
r1="0"
end if
set conn=server.createobject("adodb.connection")
conn.open "Driver=Driver do Microsoft Access (*.mdb);Uid=admin;pwd=;DBQ="&server.MapPath("注册信息.mdb")
conn.begintrans
str="insert into client(t1,t2,r1,t3,t4)"
str=str&"values('"+t1+"','"+t2+"',"+r1+",'"+t3+"','"+t4+"')"
conn.execute str
if (t1="" or t2="" or t3="" or t4="") then
conn.rollbacktrans '回滚
conn.close
set conn=nothing
response.write "交易失败,回滚至修改前的状态!"
response.end
else
conn.committrans '提交事务
conn.close
set conn=nothing
response.write "交易成功!"
response.end
end if
conn.close
set conn=nothing
%>
</body>
</html>

#22
zacom2007-09-16 21:40
1