---------------------------
Debugger Exception Notification
---------------------------
Project Lotus.exe raised exception class EOleException with message '用户进程中发生浮点异常错误。已取消当前事务。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------select yhyear,yhmonth,yhcode,yhname,yhaddress,yhkind,useamount,
dbo.sp_calcznj(yhyear,yhmonth,yhcode) as znj
from v_usedatabymonthdbo.SP_CANCZNJ是一个函数,在SQL中运行没有问题,但在程序中就报错~~~adoquery1.Connection:=FrmQCDM.ADOCon;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:=' select yhyear,yhmonth,yhcode,yhname,yhaddress,yhkind,useamount,'+
' dbo.sp_calcznj(yhyear,yhmonth,yhcode) as znj'+
' from v_usedatabymonth where pay_lock=0 and yhcode='''+yhcode+'''';
adoquery1.open;
adoquery1.First;不知什么原因
Debugger Exception Notification
---------------------------
Project Lotus.exe raised exception class EOleException with message '用户进程中发生浮点异常错误。已取消当前事务。'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------select yhyear,yhmonth,yhcode,yhname,yhaddress,yhkind,useamount,
dbo.sp_calcznj(yhyear,yhmonth,yhcode) as znj
from v_usedatabymonthdbo.SP_CANCZNJ是一个函数,在SQL中运行没有问题,但在程序中就报错~~~adoquery1.Connection:=FrmQCDM.ADOCon;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Text:=' select yhyear,yhmonth,yhcode,yhname,yhaddress,yhkind,useamount,'+
' dbo.sp_calcznj(yhyear,yhmonth,yhcode) as znj'+
' from v_usedatabymonth where pay_lock=0 and yhcode='''+yhcode+'''';
adoquery1.open;
adoquery1.First;不知什么原因
GO
SET ANSI_NULLS ON
GOALTER function Sp_CalcZNJ(@YHYEAR INT,@YHMONTH INT,@YHCODE VARCHAR(10) )
RETURNS NUMERIC(18,2)
AS
BEGIN
/*按月计算滞纳金*/
DECLARE @USEAMOUNT NUMERIC(18,2)
DECLARE @ZNJ NUMERIC(18,2)
DECLARE @BEGINTAXDAY INT --滞纳金开始计算日,18
DECLARE @TAXPRICE NUMERIC(18,5) --滞纳金率
DECLARE @DAYS INT --@YHMONTH月的天数
DECLARE @DATE varchar(10) --
DECLARE @TAXDAY INT --滞纳金天数
DECLARE @I INT
DECLARE @PARTSUM NUMERIC(18,2)
DECLARE @M NUMERIC(18,2)
DECLARE @SYSNO INT
DECLARE @D DATETIME --当前日期
--DECLARE @YHYEAR INT
--DECLARE @YHMONTH INT
--DECLARE @YHCODE VARCHAR(10)
SET @I=1
SET @ZNJ=0
--SET @YHYEAR=2010
--SET @YHMONTH=1
--SET @YHCODE='008901'
SELECT @D=Currentdate FROM V_GETDATE
--SELECT '当前日期:'+CAST(@D AS VARCHAR(11))
SELECT @Date=cast(@YHYEAR AS CHAR(4))+'-'+CAST(@YHMONTH AS VARCHAR(2))+'-01'
--select '当前年'+cast(DATEPART(YEAR,@D) as Char(4) )
--select '当前月'+cast(DATEPART(MONTH,@D) as Char(2) )
if DATEPART(YEAR,@D)=@YHYEAR AND DATEPART(MONTH,@D)=@YHMONTH
BEGIN
--如果是本月则按当前日计算
SELECT @DAYS=DATEPART(DAY,@D)
-- SELECT '是本月'
END
ELSE
Select @DAYS=datediff( dd, dateadd(mm, DATEDIFF(mm,0,@Date), 0),
dateadd(ms,-3,DATEADD(mm, DATEDIFF(m,0,@Date)+1, 0)) ) +1 --select '本月天数:'+cast(@days as varchar(10))
SELECT @USEAMOUNT=USEAMOUNT,@SYSNO=REF_SYSNO FROM V_USEDATABYMONTH
WHERE YHYEAR=@YHYEAR AND YHMONTH=@YHMONTH
AND YHCODE=@YHCODE AND PAY_LOCK =0
SELECT @BEGINTAXDAY=TAXLIMIT,@TAXPRICE=TAXPRICE
FROM SYSDATA WHERE SERNO=@SYSNO
--SELECT '滞纳金计算开始日:'+CAST(@BEGINTAXDAY AS VARCHAR(10) )
--SELECT '滞纳金计:'+CAST(@TAXPRICE AS VARCHAR(10))
--计算滞纳金天数
SELECT @TAXDAY=@DAYS-@BEGINTAXDAY --SELECT '滞纳金天数:'+CAST(@TAXDAY AS VARCHAR(10)) SET @M=0 --SELECT '本月应交费用:'+CAST(@USEAMOUNT AS VARCHAR(10)) SET @PARTSUM=@USEAMOUNT
--SET @TAXDAY=3
WHILE @I<=@TAXDAY
BEGIN
SET @M=@M+@PARTSUM*@TAXPRICE
SET @PARTSUM=@PARTSUM+@M
SET @I=@I+1
-- SELECT '累计部分和:'+CAST(@M AS VARCHAR(10))
END
SET @ZNJ=@M
--SELECT '滞纳金:'+cast(@ZNJ AS VARCHAR(10)) RETURN (@ZNJ)
END
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO