客户原来使用的是金蝶KIS专业版V12.3,SQL Server 2000的数据库。
一开始我在SQL Server 2005的金蝶KIS云·专业版V16.0虚拟机环境附加账套然后注册账套,升级报错截图如下:
图省事我直接将账套备份以后拷贝到SQL Server 2012的金蝶KIS云·专业版V16.0进行恢复,然后再进行升级操作。
这个时候升级报错提示如下:
使用SQL Server Profiler进行跟踪,获取到报错的语句如下:
Insert Into t_ObjectAccessType (FObjectType,FObjectID,FIndex,FAccessMask,FAccessUse,FName,FDescription,FName_cht,FName_en,FDescription_cht,FDescription_en)
Values (1002,15,6,1,0,'关账/反关账','关账/反关账','','','','')
--
delete t_ObjectAccess where FGroupID = 142 and FObjectType = 1002 and FObjectID = 15 and FIndex = 6
这个时候在SQL Server Management Studio执行以下语句:
SELECT * FROM t_ObjectAccessType WHERE FObjectType=1002 AND FObjectID=15
查询结果如下:
由此可以看出在金蝶KIS专业版V12.3 账套中已经有“关账/反关账”选项了,这个时候我们去金蝶KIS云·专业版V16.0安装路径下去找相应的SQL脚本。
因为在SQL Server Profiler进行跟踪时可以查到对应的补丁号,根据补丁号可以缩小范围。PT086517是V12.3的补丁,那么报错的脚本应该也是V12.3的。
如果不太清楚升级脚本所在的位置,可以借助Everything直接搜索.sql的文件。
缩小范围打开V12.3这三个SQL脚本,直接ctrl+f搜索“关账/反关账”,找出来以后可以直接将这段语句注释掉,也可以直接删除。
我是直接将这一段删除,然后重新进行账套升级操作。
这个时候又出来一个新的错误提示,如下图:
这个时候去SQL Server Management Studio查看数据库视图,筛选“vw_arap_PBillList”
点击“筛选设置”指定好条件点击”确定“
这个时候我们可以很清楚的看到在要升级的数据库中确实没有“vw_arap_PBillList”这个视图。
这个时候我们可以去其他正常的账套直接查找对应的视图并生成SQL脚本,如下图操作即可:
生成成功以后将图示位置的数据库改成要升级的数据库,然后点击“执行”。
执行完成以后重新进行升级操作,顺利完成账套升级。
在处理别的账套时,偶尔还会出现如下提示:
使用SQL Server Profiler进行跟踪,获取到报错的语句如下:
--出入库单序时簿增加"摘要"
if not exists(select 1 from ICChatBillTitle where FTypeID=70 and FInterID = 105)
begin
Insert into ICChatBillTitle
select FInterID,70 As FTypeID,FColCaption,FHeadSecond,FColName,FTableName,FColType,FColWidth,FVisible,FItemClassID,FVisForQuest,FReturnDataType,FCountPriceType,FCtlIndex,FName,FTableAlias,FAction,FNeedCount,FIsPrimary,FLogicAction,FStatistical,FMergeable,FVisForOrder,FColCaption_CHT,FColCaption_EN,FControl,FMode,FControlType,FPrecisionField,FAlign,FEditable,FFormat,FFormatType,FIsVisibleForTemplate,FListSort
from ICChatBillTitle where FTypeID=57 and FInterID=105
End
经过一番确认发现是截图的SQL脚本中报错这段语句少了两个字段,这个时候只需要在SQL脚本中添加上FColCaptionByShow和FHeadSecondByShow这两个字段就可以正常升级了。
添加FColCaptionByShow和FHeadSecondByShow这两个字段执行升级时有的账套还会报以下错误:
这个时候只需要去SQL Server Management Studio中找到ICChatBillTitle这个表,在设计里添加上FColCaptionByShow和FHeadSecondByShow这两个字段就可以正常升级了。
在数据库中对表进行筛选,选择ICChatBillTitle这个表鼠标右键选择“设计”然后参考其他账套添加FColCaptionByShow和FHeadSecondByShow这两个字段。
以上就是我今天金蝶KIS专业版V12.3账套升级到金蝶KIS云·专业版V16.0几个数据异常问题的处理思路及方法,希望对你能有所帮助。

