作者yauhh (哟)
看板Visual_Basic
标题Re: [ASP ] ASP 自动编号的问题~
时间Fri Jul 10 10:23:23 2009
※ 引述《phi12345 (鲔鱼、柚子、Stanley)》之铭言:
: 目前我在 week_add_news.asp
: 里面设了
: set rs=server.CreateObject("ADODB.Recordset")
: sql = "select * from c_week"
: rs.open sql,conn,1,3
: rs.addnew
: response.write rs("sid")
: rs("t_name")=t_name
: rs("t_wname")=t_wname
: rs("s_pic")=s_pic
: rs("r_name")=r_name
: rs("t_time")=t_time
: response.write rs("rid")
: response.write rs("pid")
rs.addnew的用法我很不熟. 稍微记得是:
rs.addnew
'... 在此对 rs 增添一些资料
rs.update '要下这一行命令,以上的资料增添才会生效
: 但是新增资料时~跑到 sid rid pid 都会出现错误~@@
: 我改成 response.write rs("sid")
: response.write rs("rid")
: response.write rs("pid")
: 出现 无法插入 NULL 值到资料行 'pid',资料表 'xxx.dbo.c_week';
: 资料行不得有 Null。INSERT 已经失败。
这里我想合理的解释是: response.write rs("sid") 是从 rs 目前一列
的 sid 栏位取资料. 而你把这一行写在 rs.addnew 的范围内,表示
资料还没添进去,就要它把资料印出来. 因为没有给资料,所以它试着给
Null,然後根据栏位属性判断出无法添Null值进去. (这是自己一脚被另一脚绊到啊!)
: 用 rs("sid")=sid
: 会出现
: 这个错误
: (80040e21)多重步骤操作发生错误
: 这是哪里的问题@@?
「多重步骤操作发生错误」以下网页有这样的解释:
http://www.adopenstatic.com/FAQ/80040e21.asp
这个毛病是当你把超过栏位量的资料塞进去而造成的.
例如把20字元资料塞进varchar(10)中,或是把超过二的指数15
的大整数塞进整数栏位.
照理说, rs("sid") = sid 这个动作合理,但就要看sid是不是合格的值.
ASP有些变数转型会不小心转成字串,会不会是这个原因?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.160.112.24