日期:2014-05-18  浏览次数:20405 次

ASP+MSSQL网站出现问题,请帮忙解决
我公司网站是ASP+MSSQL做的,最近出现问题是在后台插入文章提现如下代码: 
Microsoft OLE DB Provider for ODBC Drivers 错误 '80040e14' 

[Microsoft][ODBC SQL Server Driver][SQL Server]无法将 NULL 值插入列 'carticle_id',表 'www_cmedu_org.web275706.c_article';该列不允许空值。INSERT 失败。 

/common/inc/funccore.inc.asp,行 698 
请问大虾,问题出在ASP网站文件里还是数据库里? 
我应该怎么解决,说的最好详细一些!谢谢啦

if sql="" or p_act="" then 
reportError("函数int_cAll(p_target, p_act, p_dic)调用时出错:sql语句为空(可能原因为参数缺少)") 
end if 

'**************************** 
'response.write sql 
'response.end 
'**************************** 

rs.open sql, conn, 1, 3 

'若为更新或删除则返回true,若为插入则找到刚插入的值ishopinstrumentlist除外 
If(p_act="delete" or p_act="update") Then 
int_cAll = 1 
elseif(p_act="insert" and p_target<>"ishopinstrumentlist") then 
sql = "select " & str_targetid_name & " from " & p_target & " order by " & str_targetid_name & " desc" 
rs.open sql, conn, 1, 1 
int_cAll = rs(0) 
End if

------解决方案--------------------
原因就是'www_cmedu_org.web275706.c_article 这个表里的列carticle_id是不允许空值的
你可能在应用程序上判断不严谨,造成了没有对该字段插入值,所以就会抱这个错误

你在ASP里把SQL语句打出来,然后放到查询分析器里执行,就可以看到哪里的问题了。
------解决方案--------------------
If(p_act= "delete " or p_act= "update ") Then
int_cAll = 1
elseif(p_act= "insert " and p_target <> "ishopinstrumentlist ") then
sql = "select " & str_targetid_name & " from " & p_target & " order by " & str_targetid_name & " desc "
response.write(sql)
response.end 
rs.open sql, conn, 1, 1
int_cAll = rs(0)
End if
------解决方案--------------------
顯然,插入文章的時候,沒有同時插入carticle_id
------解决方案--------------------
楼上两位都说了,asp代码写的不严谨.
------解决方案--------------------
提示信息很清晰,后台数据库中不允许为空的字段,必须有值。