各位大师,请问下为什么用友T3软件2011年和12年可以升级成功,13年和14年却升级不成功

各位大师,请问下为什么用友T3软件2011年和12年可以升级成功,13年和14年却升级不成功,第1张

用msde管理工具执行以下脚本,具体方法:

运行msde管理工具,确定登录(如果有sql密码,要输入密码登录)

然后点脚本-执行,数据库选择出错的数据库,比如的你的2013出错,就选择UFDATA_(帐套号)_2013,然后在语句区中把下面的脚本文字复制进去,点执行,然后再升级,同样2014年也这么执行一下,管理工具在最下面附加里,自己下载下

alter table MatchVouch add bReqAnalyse bit,dIssueDate varchar(16)

GO

/****** 对象:  StoredProcedure [dbo].[ST_CalBegInvAge]    脚本日期: 08/15/2014 13:12:13 ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

--计算上年结存库龄

CREATE PROCEDURE [dbo].[ST_CalBegInvAge]

@cDBName Varchar(20),    --上一个账套名称

@CurrentDate Datetime,    --计算日期

@cCurDBName  varchar(20)    --当前账套名称

As

Declare @strLeftQty nVarchar(4000)

Declare @StockStartDate datetime

declare @cWhCode nvarchar(50)

declare @cInvCode nvarchar(50)

declare @cBatch nvarchar(50)

declare @cFree1 nvarchar(120)

declare @cFree2 nvarchar(120)

declare @iQtty float

declare @iNum float

declare @autoId int

declare @iVouchQtty float

declare @iVouchNum float

declare @iTempQtty float

declare @iTempNum float

declare @strSQLInvAge nVarchar(4000)

declare @strInvAge nVarchar(4000)

declare @strSQLIn  nVarchar(4000)

declare @strSQLOut nVarchar(4000)

declare @strNewRecord nVarchar(4000)

declare @strSql nVarchar(200)

declare @sSQL  nVarchar(200)

declare @sBegdate As nVarchar(200)

declare @iCou int

--取库存启用日期

Set @sBegdate = N'select @StockStartDate = cast(cValue as Datetime)  from ' + @cDBName + '..accinformation ' + ' Where cSysid=''ST'' and cName= ''dSTStartDate'' '

exec sp_executesql @sBegdate,N'@StockStartDate datetime output', @StockStartDate output

If @StockStartDate is Null

Begin

Return

End

--计算本期当前结存

Set @strNewRecord = N'Insert Into ' +@cDBName+'..STStockAgeTempTable(autoid, iqtty, inum)

values(@autoid, @iTempQtty, @iTempNum) '

set @strLeftQty =

' SELECT cWhCode,

cInvCode,

IsNull(cBatch,'''') As cBatch,

IsNull(cFree1,'''') As cFree1,

IsNull(cFree2,'''') As cFree2,

SUM(case when bRdFlag = 1 then iQuantity else -iQuantity end) as iQtty,

SUM(case when bRdFlag = 1 then iNum else - iNum end) AS iNum

 From(  Select bRdFlag, cWhCode, cInvCode, iQuantity, INum, cBatch, cFree1, cFree2

From '+ @cDBName+'..ST_BegInvAge

Union ALL

Select R.bRdFlag, R.cWhCode, Rs.cInvCode, Rs.iQuantity, Rs.INum, Rs.cBatch, Rs.cFree1, Rs.cFree2

From ' + @cDBName+ '..RdRecord R inner join '+@cDBName+'..RdRecords Rs on R.id = Rs.id

Where R.dDate >= @StartDate And R.dDate <= @CurrentDate And cVouchType <>''33'' And cVouchType <>''34''

) X

group by cWhCode, cInvCode, IsNull(cBatch,''''),IsNull(cFree1,''''), IsNull(cFree2,'''') '

--取入库语句

Set @strSQLIn = ' Select AutoId, iQtty, iNum

 From (Select dDate, AutoId, abs(iQuantity) As iQtty, abs(iNum) As iNum

From '+@cDBName+'..ST_BegInvAge

Where cWhCode = @cWhCode and cInvCode = @cInvCode and isnull(cBatch,'''') = @cBatch

and isnull(cFree1,'''') = @cFree1 and isnull(cFree2,'''') = @cFree2

Union ALL

Select d.dDate,ds.autoid, Abs(ds.iQuantity) as iQtty, Abs(ds.iNum) as iNum

from '+@cDBName+'..RdRecord d join ' + @cDBName + '..RdRecords ds on (d.id = ds.id)

where ( (d.bRdFlag = 1 and ds.iQuantity >0) or (d.bRdFlag <>1 and ds.iQuantity <0))

And d.dDate >= @StartDate and d.dDate <= @CurrentDate and d.cWhCode = @cWhCode

and ds.cInvCode = @cInvCode and IsNull(ds.cBatch,'''') = @cBatch and IsNull(ds.cFree1,'''') = @cFree1

and IsNull(ds.cFree2,'''') = @cFree2) X

order by dDate Desc,AutoID Desc for read only '

Set @strSQLIn = N' declare curInvIn insensitive cursor for ' + @strSQLIn

set @strLeftQty = N'declare curRd cursor for ' + @strLeftQty

execute sp_executesql @strLeftQty,

N'@CurrentDate Datetime, @StartDate Datetime',

@CurrentDate, @StockStartDate

open curRd

fetch next from curRd into

@cWhCode,@cInvCode,@cBatch,

@cFree1,@cFree2,@iQtty, @iNum

--建立计算结果临时表

Set @sSQL = N'select @Num = count(1) from ' + @cDBName + '..sysobjects ' + ' Where name = ''STStockAgeTempTable'' '

exec sp_executesql @sSQL,N'@Num int output', @iCou output

If @iCou <>0

Begin

Exec (' Drop Table ' + @cDBName+'..STStockAgeTempTable')

End

Exec (' Create Table '+@cDBName+'..STStockAgeTempTable (autoId int , iQtty float,  iNum float)')

--sp_help ST_BegInvAge

while @@fetch_status = 0

begin

if(@iQtty <0 ) set @iQtty = 0

if(@iNum <0 or @iNum is null) set @iNum = 0

Set @iTempQtty = 0.0

Set @iTempNum = 0.0

--按降序取入库

execute sp_executesql @strSQLIn,

N'@CurrentDate Datetime, @StartDate Datetime, @cWhCode varchar(50),

@cInvCode varchar(20), @cBatch varchar(50),

@cFree1 varchar(120), @cFree2 varchar(120)',

@CurrentDate, @StockStartDate, @cWhCode, @cInvCode, @cBatch, @cFree1, @cFree2

open curInvIn

fetch next from curInvIn into @autoId, @iVouchQtty, @iVouchNum

while (round(@iQtty,6) >0 or round(@iNum,6) >0) and @@fetch_status =0

begin

if Round(@iQtty, 6) >Round(@iVouchQtty, 6)

begin

set @iTempQtty = @iVouchQtty

set @iQtty = Round(@iQtty, 6) - Round(@iVouchQtty, 6)

end

else begin

set @iTempQtty = @iQtty

set @iQtty = 0.0

end

if Round(@iNum, 6) >Round(@iVouchNum,6)

begin

set @iTempNum = @iVouchNum

set @iNum = Round(@iNum, 6) - Round(@iVouchNum, 6)

end

else begin

set @iTempNum = @iNum

set @iNum = 0.0

end

--增加计算结果

execute sp_executesql @strNewRecord,

N'@autoid int, @iTempQtty float, @iTempNum float',

@autoid, @iTempQtty, @iTempNum

Set @iTempQtty = 0.0

Set @iTempNum = 0.0

fetch next from curInvIn into @autoid, @iVouchQtty, @iVouchNum

end

close curInvIn

deallocate curInvIn

fetch next from curRd into

@cWhCode,@cInvCode,@cBatch,@cFree1,@cFree2,@iQtty, @iNum

end

close curRd

deallocate curRd

--将结果数据输出

set @strSQLInvAge =N'

Select  [ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,

[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,

[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,

[cDefine3]  ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7]  ,

[cDefine8] ,[cDefine9] ,[cDefine10] , RT.[AutoID] ,[cInvCode],

(case when x.bRdFlag = 0 then -1 * RT.[iNum] else RT.[iNum] end)  As iNum,

(case when x.bRdFlag = 0 then -1 * RT.[iQtty] else RT.[iQtty] end) As iQuantity ,

[iUnitCost] ,[iPrice]  ,[cBatch],[cFree1] ,

[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,

[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class]  , [cItemCode]  ,

[cName] ,[cItemCName]

Into '+ @cCurDBName+'..ST_BegInvAge

From '+@cDBName+'..STStockAgeTempTable RT Inner Join (

Select  [ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,

[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,

[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,

[cDefine3]  ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7]  ,

[cDefine8] ,[cDefine9] ,[cDefine10] ,[AutoID] ,[cInvCode],

[iNum] ,[iQuantity] ,[iUnitCost] ,[iPrice]  ,[cBatch],[cFree1] ,

[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,

[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class]  , [cItemCode]  ,

[cName] ,[cItemCName]

From '+@cDBName+'..ST_BegInvAge

Union All

Select  R.[ID], [bRdFlag],[cVouchType],[cWhCode] ,[dDate] ,

[cCode],[cRdCode],[cDepCode] ,[cPersonCode] ,[cVenCode] ,

[cHandler] ,[cMemo] ,[cMaker] ,[cDefine1] ,[cDefine2] ,

[cDefine3]  ,[cDefine4] ,[cDefine5] ,[cDefine6] ,[cDefine7]  ,

[cDefine8] ,[cDefine9] ,[cDefine10] ,[AutoID] ,[cInvCode],

[iNum] ,[iQuantity] ,[iUnitCost] ,[iPrice]  ,[cBatch],[cFree1] ,

[cFree2] ,[dVDate] ,[cDefine22] ,[cDefine23] ,[cDefine24] ,

[cDefine25] ,[cDefine26] ,[cDefine27] ,[cItem_class]  , [cItemCode]  ,

[cName] ,[cItemCName]

From '+@cDBName+'..RdRecords Rs inner join '+@cDBName+'..RdRecord R On (R.ID = Rs.ID)

Where dDate >= @StartDate And dDate <= @CurrentDate And cVouchType <>''33'' And cVouchType <>''34''

) X On RT.autoId = X.autoId  

'

execute sp_executesql @strSQLInvAge,

N'@CurrentDate Datetime, @StartDate Datetime',

@CurrentDate,

@StockStartDate

用友畅捷通T3升级到用友畅捷通T+,用友畅捷通T+中有升级工具的,但是对T3的升级数据有要求:

1、用友畅捷通T3普及版和标准版都只能升级总账模块的凭证数据和基础档案、存货档案、期初余额。不能升级其他模块的数据。

2、将T3备份的数据拷贝到T+服务器上,然后使用T+系统管理中的恢复工具将T3的数据库恢复进入。

3、使用T+自带的升级工具升级数据。在升级时选择产品线、账套。如图所示:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9931651.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存