• WAP手机版 加入收藏  设为首页
金蝶技术解答

金蝶软件结账时发生错误,请重新登录,某某表不能重复插入键值

时间:2012-09-05 18:12:33  作者:manager  来源:金蝶软件资讯网  查看:3007  评论:0
内容摘要:问题描述:(一)商贸版结账时提示结账错误,t_cc_bal表不能重复插入键值    select fyear,fperiod,fstockid,fitemid,fbatchno from t_cc_bal group by fyear,fperiod,fstockid,f...
问题描述:(一)商贸版结账时提示结账错误,t_cc_bal表不能重复插入键值
  
  select fyear,fperiod,fstockid,fitemid,fbatchno from t_cc_bal group by fyear,fperiod,fstockid,fitemid,fbatchno having count(*)>1
  
  查询语句没有查询到主键值重复记录 说明不是数据库本身的问题,打补丁解决。
  
   (二)某某表不能重复插入键值。如t_cc_stock 不能重复插入键值等可采用类似方法处理。
  
   (三)如果是t_balance不能重复插入键值则采用以下语句处理
  1、这种情况基本上都发生在余额表中保存了当前期间以后的数据。造成产生这样的数据的可能原因是曾经进行过期末结账,但是在结账过程中遇到意外错误造成程序无法将数据还原。
  2、账套结账的原理:根据当期期末数据,形成下期的期初数据。那么在进行期末结账之前,在余额表中不应该存在当前期间以后的数据。
  【处理】:
  这种情况下的错误,一般需要使用SQL语句来处理。建议在备份账套的情况下,在查询分析器中选择正确的账套数据库实体后,执行以下SQL再结账。
  go
  declare @Fyear int,@Fperiod int
  select @Fyear=fvalue from t_systemprofile where fkey='currentyear' and fcategory='gl'
  select @Fperiod=fvalue from t_systemprofile where fkey='currentperiod' and fcategory='gl'
  delete from t_balance where fyear*100 fperiod>@Fyear*100 @Fperiod
  delete from t_profitandloss where fyear*100 fperiod>@Fyear*100 @Fperiod
  delete from t_quantitybalance where fyear*100 fperiod>@Fyear*100 @Fperiod
  go

标签:金蝶软件 
相关评论

陕ICP备12000870号-2

西安金蝶软件咨询电话:029-62319666  金蝶在线咨询   金蝶在线咨询

金蝶软件介绍金蝶软件教程金蝶K3解决方案