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

求大神们解决小弟一个MS sql server的问题
我用帆远的FineReport做了个填服模版,向mssql server 2008数据库中的一个表更新数据,在帆软的填报模版里的填报数值写的公式,if(len(K5) == 0, sql("test", "select 加工类型 from 零件资料表_板材 where 工程名='" + D2 + "' and 零件号='" + C5 + "'", 1, 1), K5)
大意是如果单元格是空值,就从数据库里读取读值填进去,读的和填的都是同一列的值。运行中,数据库没有反应,我用数据库管理器直接进数据库查看那个操作的表,也一直显示查询中,不能返回数据,其他表都是好的,要重启数据库才行,但是如果用access数据库,就完全没有问题,有大神知道这是为什么吗。

------解决方案--------------------
你把这个语句:

if(len(K5) == 0, sql("test", "select 加工类型 from 零件资料表_板材 where 工程名='" + D2 + "' and 零件号='" + C5 + "'", 1, 1), K5)

改为这样试试,可能是系统有阻塞问题:
if(len(K5) == 0, sql("test", "select 加工类型 from 零件资料表_板材 with(nolock) where 工程名='" + D2 + "' and 零件号='" + C5 + "'", 1, 1), K5)