在使用Qt调用SqlSever存储过程中,输出参数并未被接收。
SqlSever存储过程部分代码:
```sql
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[wuyefei]
@startDate smalldatetime,@endDate smalldatetime,@YinJiaoMoney int output,@ShiJiaoMoney int output,@WeiJiaoMoney int output
AS
SELECT @YinJiaoMoney = SUM(Pay_Wuyemoney)
FROM WuYePayMoney
WHERE Year_month between @startDate AND @endDate
SELECT @ShiJiaoMoney = SUM(Pay_Wuyemoney)
FROM WuYePayMoney
WHERE if_pay = '是' AND Year_month between @startDate AND @endDate
SELECT @WeiJiaoMoney = SUM(Pay_Wuyemoney)
FROM WuYePayMoney
WHERE if_pay = '否' AND Year_month between @startDate AND @endDate
Qt部分代码:
```c++
QDateTime starttime,endtime;
starttime = ui->dateEdit->dateTime();
endtime = ui->dateEdit_2->dateTime();
if(starttime>=endtime)
{
QString str = "起始时间必须小于结束时间!";
ui -> listWidget ->addItem(str);
}
else
{
QSqlQuery query;
query.prepare("exec wuyefei :startDate,:endDate,:YinJiaoMoney,:ShiJiaoMoney,:WeiJiaoMoney");
query.bindValue(":startDate",starttime);
query.bindValue(":endDate",endtime);
query.bindValue(":YinJiaoMoney",0);
query.bindValue(":ShiJiaoMoney",0);
query.bindValue(":WeiJiaoMoney",0);
query.exec();
QString str,str0,str1,str2,str3,str4;
query.next();
str0 = query.boundValue(0).toString();
str1 = query.boundValue(1).toString();
str2 = query.boundValue(2).toString();
str3 = query.boundValue(3).toString();
str4 = query.boundValue(4).toString();
str = "从"+str0+"到"+str1+", "+"应交物业费"+str2+"元。已交物业费为:"+str3+"元。未交物业费为:"+str4+"元。";
ui -> listWidget ->addItem(str);
}