日期:2014-05-17  浏览次数:21019 次

请教asp+access提交的问题
我用asp+access写的网页,出现了这样的问题:
1、conn.asp
<%
set   conn=server.createobject( "adodb.connection ")  
conn.open   "driver={microsoft   access   driver   (*.mdb)};dbq= "&server.mappath( "database/szkangle.mdb ")  
%>
2、usermsg.asp
<!--#include   file= "conn.asp "-->
sql   =   "select   *   from   user "
set   rs=server.createobject( "adodb.recordset ")  
rs.Open   sql   ,   conn,   1,1  
表名:user   字段:id自动编号;no文本;name文本,这个可以取出数据
3、usersave.asp
<!--#include   file= "conn.asp "-->
<%
Set   Rs   =   Server.CreateObject( "ADODB.Recordset ")
sql= "INSERT   into   user(no,name)   values( '1 ', '2 ') "
Rs.Open   sql,   conn,   1,1
%>
这个即提示:
Microsoft   OLE   DB   Provider   for   ODBC   Drivers   (0x80040E21)
ODBC   驱动程序不支持所需的属性。
Rs.Open   sql,   conn,   1,1   这一行有错
这个是什么原因,要怎样处理?可以查询但不能保存,希望大家帮忙解决一下,谢谢!!!




------解决方案--------------------
Rs.Open sql, conn, 1,3

或直接用conn
<%
sql= "INSERT into user(no,name) values( '1 ', '2 ') "
conn.execute(sql)
%>
------解决方案--------------------
3、usersave.asp
<!--#include file= "conn.asp "-->
<%
Set Rs = Server.CreateObject( "ADODB.Recordset ")
sql= "INSERT into user(no,name) values( '1 ', '2 ') "
Rs.Open sql, conn, 1,1
%>
------------------------------------------------
对于Recordset对象的Open方法,是用来打开记录集的,不是用来执行SQL命令。
要执行无返回结果的SQL命令,请用Connection对象的Execute方法
如:
sql= "INSERT into user(no,name) values( '1 ', '2 ') "
conn.Execute sql
注意,在使用Execute时不需要用括号把变量sql括起来
------解决方案--------------------
Rs.Open sql, conn, 1,1

表示你打开数据库的方式,1,1表示只读,你只可以对数据库进读取操作,不可以进行更改或删除记录

------解决方案--------------------
Conn.Execute( "Insert Into user(no,name) values( '1 ', '2 ') ")
这个简单,为什么不用?
------解决方案--------------------
1,1只是读权限,1,3才是写

放到别的地不行当然也是权限问题了.