名称已由现有对象使用_KIS常见名称或代码已被使用的问题和处理

5842ee5bb25a9332b72e81a4f6ba8191.png

本期概述
本文档适用于 KIS 中出现的名称或代码已被使用的问题处理
版本信息
l 2012 年 02 月 28 日 V1.0 编写人:秦海生
l 2012 年 03 月 17 日 V1.0 审核人:秦嘉
使用说明
著作权人保留本文件的内容的解释权,并且仅将本文件内容提供给阁下个人使用。对于内容中所含的版权和其他所有权声明,您应予以尊重并在其副本中予以保留。您不得以任何方式修改、复制、公开展示、公布或分发这些内容或者以其他方式把它们用于任何公开或商业目的。任何未经授权的使用都可能构成对版权、商标和其他法律权利的侵犯。如果您不接受或违反上述约定,您使用本文件的授权将自动终止,同时您应立即销毁任何已下载或打印好的本文件内容。
著作权人对本文件内容可用性不附加任何形式的保证,也不保证本文件内容的绝对准确性绝对完整性。本文件中介绍的产品、技术、方案和配置等仅供您参考,且它们可能会随时变更,恕不另行通知。本文件中的内容也可能已经过期,著作权人不承诺更新它们。如需得到最新的技术信息和服务,您可向尚贤科技取得联系。
l 技术支持电话:0771-2833801
l QQ:1070265569


1. 问题
名称或代码在系统中已被使用" (错误代码:3604 E14H) Fdetail:列名'F3001'无效
2. 分析3. 处理
1 名称或代码在系统中已被使用" (错误代码:3604 E14H) Fdetail:列名'F3001'无效
--修正核算项目关系
select * from t_itemdetail exec sp_cleanitemdetailv GO
update a set a.fdetailcount=b.Fcount
from t_itemdetail a join (select Fdetailid,count(*) as Fcount from t_itemdetailv where fitemid=-1 group by Fdetailid) b
on a.fdetailid=b.fdetailid where a.fdetailcount<>b.Fcount
--修正核算项目关系完
--原因分析
--丢失 F 列,还需要进行F 列的补回,t_itemdetail 表中缺少列 F3001
--解决方案
--补回此列,如果有数据发生还要补回数据
If Not Exists(Select c.Name from syscolumns c,sysobjects o where c.Id=o.Id and c.name='F3001' and o.name='t_ItemDetail') Begin
Alter Table t_ItemDetail Add F3001 int not null default(0) Create Index ix_ItemDetail_3001 On t_ItemDetail(F3001) END3.2 凭证过账时系统提示:名称或代码在系统中已经被使用
错误代码:3604(E14H)
Source :Microsoft OLE DB Provider for SQL Server


Detail :在结果列的列表中多次出现列名 'F8' 执行语句校正即可
update d set d.fdetailcount=v.fcount from t_ItemDetail d,
(select fdetailid,count(*) fcount from t_ItemDetailv where fitemid=-1 group by fdetailid ) v
where d.fdetailid=v.fdetailid
不同的账套,可能会提示不同的列名,如 F1 等,请变通执行
错误原因:核算项目横表 t_itemdetail 的核算项目类别数目和科目挂的核算项目数目不一致


3.3 在查询科目余额表并选择包括核算项目时,系统提示:名称或代码在系统中已被使用错误代码:3604(E14H)Fdetail:列名'F3001'无效
补回此列,如果有数据发生还要补回数据
If Not Exists(Select c.Name from syscolumns c,sysobjects o where c.Id=o.Id and c.name='F3001' and o.name='t_ItemDetail') Begin
Alter Table t_ItemDetail Add F3001 int not null default(0) Create Index ix_ItemDetail_3001 On t_ItemDetail(F3001) END


如果还存在其他列名无效,参照修改上述 SQL 中的列名后,进行添加。错误原因:在 t_itemdetail 表中缺少列 F3001
3.4 录入凭证时提示错误代码:3604(E14H), Source :MicrosoftOLE DB Provider for SQL Server Detail :分布式事务已完成。请将此会话登记到新事务或 NULL 事务中
此问题是由凭证最大内码号超过 2147483647 造成的,请参考以下 SQL 处理
select distinct(fvoucherid) AS Foldid,IDENTITY(int,1,1) as fnewid into #tmpa from t_voucher------------ 建立新旧凭证内码对应关系
update a set a.fvoucherid=b.fnewid from t_voucher a , #tmpa b where


a.fvoucherid=b.folded---- 用新内码替换旧内码
update a set a.fvoucherid=b.fnewid from t_voucherentry a , #tmpa b where a.fvoucherid=b.foldid
update t_identity set fnext=(select max(fvoucherid) from t_voucher)+1 where fname='t_voucher'
3.5 名称或代码在系统中已被使用——删除上机日志时提示详细信息:错误代码:3604(E14H)Source :Microsoft OLE DB Provider for SQL ServerDetail :数据库 ' AIS20071219151707' 的日志已满。请备份该数据库的事务日志以释放一些日志空间。
1. EXEC sp_cleanitemdetailv GO
UPDATE a SET a.fdetailcount=b.fcount
FROM t_itemdetail a JOIN
(SELECT fdetailid, COUNT(*) AS fcount FROM t_itemdetailv
WHERE fitemid=-1
GROUP BY fdetailid) b ON a.fdetailid=b.fdetailid
WHERE a.fdetailcount<>b.fcount
2. 清除日志已满:
在查询分析器中运行:backup log AIS20071219151707 with no_log 来截断事务日志。执行 DBCC SHRINKDATABASE(AIS20071219151707)来收缩数据库。
总结
一般在数据库中插入大量数据或者更改字段属性时,会提示这种错误。数据库 'AIS2007******'

的日志已满。请备份该数据库的事务日志以释放一些日志空间。一般考虑如下操作: 1.在查询分析器中运行: -- 截断事务日志 backup log 数据库名 with no_log -- 收缩数据库 dbcc shrinkdatabase (数据库名) 再尝试操作。 2.将数据库的故障恢复模型设为“简单”,并选上“自动收缩”,默认是“完全”。 3.以上都还不行的话,就只能将事务日志设置为:文件增长不受限制,操作完再改回来最简单解决方案:登陆帐套管理—收缩登陆金蝶专业版,删除上级日志.

4. 总结

总结上述的情况中只是一个参考的处理方法,具体问题需要根据实际情况来处理,因是数据问题上的处理,处理前请做好数据的备份。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值