有关asp的小问题(100分)

  • 主题发起人 主题发起人 wrs
  • 开始时间 开始时间
W

wrs

Unregistered / Unconfirmed
GUEST, unregistred user!
我使用asp做了一个留言本程序,使用了odbc数据库,在本机pwin98+pws下
工作正常,可是传到主页上后,运行asp程序时在更新数据库数据(使用update
,insert)时会出错,见下:
Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'
[Microsoft][ODBC Microsoft Access 驱动程序] 操作必须使用一个可更新的查询。
/home/kj.asp, 行52
为什么????
 
Set Conn=Server.CreateObject("ADODB.Connection")
Connstr="DBQ="+server.mappath("db.mdb")+";DefaultDir=;DRIVER={Microsoft Access Driver (*.mdb)};DriverId=25;FIL=MS Access;ImplicitCommitSync=Yes;MaxBufferSize=512;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Threads=3;UserCommitSync=Yes;"
Conn.Open connstr
str="UPDATE kongjian SET xiazai=xiazai+1 WHERE id=" &
wjid
conn.execute str
程序执行到这里就出错,错误见上面我的问题,请各位大虾帮忙!
 
1.id是string型的吗?
2.你换成command对象试试!
  BTY,你为什么要直接创建一个Connection,这佯是很浪费资源的
而且速度很慢。你可以在Global.asa里,在appplicaiton_onstart
里,创建一个Command and a connection,把它保存在一个变量里,
以后在程序里再实例化它一个,会解决很多问题。
 
你的数据库所在目录可能没有"写"的权限.
 
呵呵, cakk说得对:-)
nt和9x不同的是有权限设定, 看看db.mdb的读写权限是不是everyone?
 
to hntangwei: wrs的方法是对的,并不浪费系统资源.相反,你的方法才
是真的浪费系统资源.
 
cytown,cAkk说的对.
 
cakk: 如果这个connection用得很多的话: 如几乎每页都要用到, 应该放在global.asa
中, 建立一次connection就可以所有页面都使用了(建议在session中建立).
这样效率最高, 而且不浪费系统资源: 每个用户一个connection.
当然, 如果是只有这一页才需要connection的话, 还是动态建立好, 不过注意要
connection.close关闭.
 
No. 照你这样做,就算是没有人访问,也一直有一个连接占着? 这还不浪费?
最好的办法是动态建立,用完释放掉.浪费的仅仅是速度.
这在www.chinasp.com里面已经有过讨论.
 
老哥:
当一定时间没有用户连接时,Connection会自动关闭的。
 而且,你的应用程序在服务器上还可以设成:多少分钟以后没有
用户连接自动关闭的。!!!这不比不停的创建连接要好? 
 
呵呵, 没错, 放在session里, 如果session timeout, 这个connection就会自动
释放, 如果再有访问, 就会自动建立, 没有访问不会建立connection的.
 
随你们吧! 反正我相信我是对的.
 
hntangwei,cytown: 另外,你们说的可有资料证明? 我想研究一下.
 
呵呵, 看看iis4的书, 或者interdev的书:-)
 
《interdev 技术参考手册》《ASP与WEB数据库》,其它的好点的IIS
&ASP的书都有。
 
网上有没有? 我很久不买书了. ;-)
 
多人接受答案了。
 
呵呵, 又来一次, cakk, 看来你的警告不管用:-)
 
后退
顶部