用delphi6调用mssql-sever2000内的存储过程,传递的参数不知那里出了问题?同样的参数值,在mssqlsever内运行以下代码得的数据同在delphi内的运行的插入数据不同,真是怪了,
但用delphi的参数查询又没问题?就是用它来做插入数据就出问题了。delpi内:ap1.close;
ap1.Parameters[0].Value:='2006001';
ap1.Parameters[1].Value:='2006002';
ap1.execproc;CREATE PROCEDURE ttt1 @Period2 INT,@PeriodYS INT asDelete from TA1
INSERT INTO TABA( dbcode, ACCNT_CODE, AMT, PERIOD )
SELECT DBCode, ACCNT_CODE,AMT, PERIOD
FROM (
SELECT 'AAA' AS DBCode, ACCNT_CODE,
Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'BBB' AS DBCode,ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'LLL' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'AAA' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000
UNION SELECT 'BBB' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000UNION SELECT 'LLL' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1GLLL
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000
)A
GO
但用delphi的参数查询又没问题?就是用它来做插入数据就出问题了。delpi内:ap1.close;
ap1.Parameters[0].Value:='2006001';
ap1.Parameters[1].Value:='2006002';
ap1.execproc;CREATE PROCEDURE ttt1 @Period2 INT,@PeriodYS INT asDelete from TA1
INSERT INTO TABA( dbcode, ACCNT_CODE, AMT, PERIOD )
SELECT DBCode, ACCNT_CODE,AMT, PERIOD
FROM (
SELECT 'AAA' AS DBCode, ACCNT_CODE,
Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'BBB' AS DBCode,ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'LLL' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2UNION SELECT 'AAA' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000
UNION SELECT 'BBB' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000UNION SELECT 'LLL' AS DBCode, ACCNT_CODE, Sum(AMOUNT*-1) AS AMT, PERIOD
FROM TA1GLLL
GROUP BY ACCNT_CODE, PERIOD
PERIOD Between @PeriodYS-1000 And @Period2-1000
)A
GO
解决方案 »
- 如何通过IP获取网卡地址
- Delphi7怎么取消鼠标拖放?
- 有没有什么办法可以在Delphi里测定一段程序的执行时间???越精确越好!
- 求助 delhpi中的 文本文件 和 excel表 的数据导入问题
- 一点疑惑
- 请问如何控制DBGrid的编辑、提交等操作??我现在一旦跑到下一条记录它就自动提交了,怎么办,根本不听我的控制?
- 求助:关于Intraweb和TCPServer一起使用的问题。
- listbox能否加图标
- 我的这条语句查询结果是正确的。但我觉得有些错误, ''''是不是代表一个'号;
- Delphi中的ACM实现
- 在delphi7中使用Ado通过odbc连接mysql进行数据库编程问题的相关讨论!!![CSDN上很少有这方面的问题的贴,想在这和各位讨论以下]
- 请教如何写一个基于文件的小型数据库?
sp.close;
sp.parameters.refresh;
sp.parameters.parambyname('@bgnDate').value:=
..................
sp.execute;估计你参数用0,1这样访问,把开始时间和结束时间写反了
ap1.Parameters[0].Value:='2006002';
ap1.Parameters[1].Value:='2006001';我用edit时得到参数值应是这个的,为了简化,搞反,但问题还是同样存在的。不知为何?在sql-server内的query analyzer内运行又没有问题啊!同一个按钮,同样的参数不变,连续按几次得到的数据不同,怪不?