asp连接ACCESS数据库问题 (100分)

  • 主题发起人 主题发起人 tankhero
  • 开始时间 开始时间
T

tankhero

Unregistered / Unconfirmed
GUEST, unregistred user!
asp连接ACCESS数据库,查询(select)好用,但是插入,删除,修改(UPDATE)就出错,错误提示为
microsoft ole db provider for odbc drivers(ox80004005).
我的机器是WIN2000,没装ACCESS
 
查一查数据库的权限是不是有写权限
 
打开数据库的参数问题,最后是3,2就应该可以了。
 
我的权限是空的。数据库用户和密码全是空的
测试代码为
<!--#include FILE="adovbs.inc"-->
<%
Dim strConnString,DBConn
strConnString = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" &amp;
Server.MapPath("exdata.mdb")
set DBConn = server.CreateObject("ADODB.Connection")
'DBConn.Open strConnString
DBConn.Open "dsn=ssss"
Dim Level,Foldername,Parent,comment,Sqlstr,rs
Set rs = server.CreateObject("ADODB.Recordset")
SqlStr="select * from folders where ID = 0"
'rs.Open SqlStr,DBConn,AdOpenKeyset,AdLockOptimistic,adCmdText
rs.Open SqlStr,DBConn,AdOpenStatic,AdLockpessimistic,adCmdText
''rs.activeconnection=DBConn
''rs.source="insert into folders (name,Parent,comment) values("&amp;Foldername&amp;","&amp;Parent&amp;","&amp;comment&amp;")"
''rs.open
rs.AddNew
'rs("ID")="100"
rs("name") = "sss"
rs("Parent") = 44
rs("comment") = "ssss"
rs("recordcount")=0
rs.Update
%>
 
我的权限是空的。数据库用户和密码全是空的
测试代码为
<!--#include FILE="adovbs.inc"-->
<%
Dim strConnString,DBConn
strConnString = "DRIVER={Microsoft Access Driver (*.mdb)};
DBQ=" &amp;
Server.MapPath("exdata.mdb")
set DBConn = server.CreateObject("ADODB.Connection")
'DBConn.Open strConnString
DBConn.Open "dsn=ssss"
Dim Level,Foldername,Parent,comment,Sqlstr,rs
Set rs = server.CreateObject("ADODB.Recordset")
SqlStr="select * from folders where ID = 0"
'rs.Open SqlStr,DBConn,AdOpenKeyset,AdLockOptimistic,adCmdText
rs.Open SqlStr,DBConn,AdOpenStatic,AdLockpessimistic,adCmdText
''rs.activeconnection=DBConn
''rs.source="insert into folders (name,Parent,comment) values("&amp;Foldername&amp;","&amp;Parent&amp;","&amp;comment&amp;")"
''rs.open
rs.AddNew
'rs("ID")="100"
rs("name") = "sss"
rs("Parent") = 44
rs("comment") = "ssss"
rs("recordcount")=0
rs.Update
%>
 
查看存放数据库文件的目录权限,完全访问
 
试试这个
strConnString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='
+Server.MapPath("exdata.mdb")
+';Persist Security Info=False';
 
驱动那里正常不???
你先屏蔽了后面的代码,直接先连接,然后到
Set rs = server.CreateObject("ADODB.Recordset")
只要这几步,看看正常不,还有,如果用写字本,别用自动绕排,否则在写驱动*.mdb那里
有的时候会错,我也不知道为什么,不过有次那样遭过
 
我的问题还没有解决。请再帮忙!!!!!!!!
 
我想是不是这个语句出错
SqlStr="select * from folders where ID = 0"
如果你的id是自动编号那么
sql="select * from folders where '&amp;数字型或者自动编号&amp;' "
试一试?
 
DBConn.Open "dsn=ssss".显然你是用odbc联接的,看看你配了没有。
另:connstr="DBQ="+server.mappath("exdata.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};"
set conn=server.createobject("ADODB.CONNECTION")
conn.open connstr
试一试

 
我也遇到过类似的问题
你的.mdb 文件一定在ntfs分区上,对于在本机通过web访问本机的.mdb文件,虚拟目录下的.mdb文件统统
被加上特殊访问的权限(通过Internet)。
有两种方法解决你的问题:1.找到你的.mdb文件查看权限,去掉特殊访问,改为完全访问
2.重新建立虚拟目录,把你的.mdb文件转移到非ntfs分区上,例如 fat,fat32.
 
可能应该是NTFS格式带来的问题。
 
<!--#include file="adovbs.inc"-->
<%
dim dbconn 'as ADODB.CONNECTION
db_dir=server.MapPath ("/db/db1.mdb")
Response.Write db_dir
set dbconn=server.CreateObject ("ADODB.Connection")
dbconn.ConnectionString="Provider=Microsoft.Jet.OLEDB.4.0;"&amp;
_
"Data Source=F:/my_test/db/db1.mdb"
dbconn.Open
set dbconnset=server.CreateObject ("ADODB.Recordset")
set dbconnset.ActiveConnection =dbconn
strSQL="insert into tbname(name) values('23232323')"
dbconnset.Source = strSQL
dbconnset.Open
set dbconnset = dbconn.execute(strSQL)
dbconnset.PageSize = 10
do while not dbconnset.EOF
Response.Write "<br>"
Response.Write dbconnset("id")
Response.Write "<br>"
Response.Write dbconnset("name")
Response.Write "<br>"
dbconnset.MoveNext
loop

'下面释放资源就可以了
%>
ok
 
接受答案了.
 

Similar threads

后退
顶部