在Qt5.4中调用 sql server 2008 的存储过程如何获取返回值
来源:互联网 发布:首都经济贸易大学 知乎 编辑:程序博客网 时间:2024/06/05 00:59
首先我参考了http://m.blog.csdn.net/blog/wey123456789/38902309
参照上面的博客终于读到了存储过程的返回值
bool sql_insert_Customer(Customer &Cus){ QSqlQuery query(db); int s; query.prepare("exec ? = proc_insert_Customer ?,?,?,?,?,?"); query.bindValue(0,1,QSql::Out);//!!! query.bindValue(1,Cus.CusNo); query.bindValue(2,Cus.CusPassword); query.bindValue(3,Cus.CusName); query.bindValue(4,Cus.CusSex); query.bindValue(5,Cus.CusPhone); query.bindValue(6,Cus.CusCompany); query.exec(); s = query.boundValue(0).toInt(); return s;}
刚开始写成了query.bindValue(0,QSql::Out),半天没弄出来,找了很久才找到错误。
不过后来我在读取另一个存储过程的返回值的时候又发现了一点问题。
下面是我存储过程的代码:
USE [taxi]GO/****** Object: StoredProcedure [dbo].[proc_insert_Record] Script Date: 06/22/2015 13:49:11 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOALTER proc [dbo].[proc_insert_Record]@CarNo char(10),@CusNo char(20),@ReNo char(18) outputasdeclare @RecordNo char(18)if(not exists (select *from Table_Record where RecordNo = @RecordNo))beginselect @RecordNo = replace('D' +str(year(getdate()),4)--年 +str(month(getdate()),2)--月 +str(day(getdate()),2)--日 +str((select count(*) from Table_Record)+1,9)--流水号 ,' ','0')insert into Table_Recordvalues(@RecordNo,@CarNo,@CusNo,GETDATE(),NULL,NULL)set @ReNo = @RecordNoend
我需要读取的是一个char(18)的类型的数据,
错误代码:
query.prepare("exec proc_insert_Record ?,?,? output"); query.bindValue(0,CarNo); query.bindValue(1,id); query.bindValue(2,"",QSql::Out);//一定要和数据库的的类型相同 我这里数据库是char(18),那么就要指定18位字符串才能读出来 query.exec(); RecordNo = query.boundValue(2).toString();
正确代码:
query.prepare("exec proc_insert_Record ?,?,? output"); query.bindValue(0,CarNo); query.bindValue(1,id); query.bindValue(2,"D20150622000000000",QSql::Out);//一定要和数据库的的类型相同 我这里数据库是char(18),那么就要指定18位字符串才能读出来 query.exec(); RecordNo = query.boundValue(2).toString();
我注释的地方一定要注意,如果传过去字符串没有18位是读不到完整的数据的!!
数据库实训好蛋疼~~
0 0
- 在Qt5.4中调用 sql server 2008 的存储过程如何获取返回值
- 收集到的:如何调用存储过程,有返回值的,有参数的,存储过程中调用存储过程。(MS SQL Server)
- 如何调用存储过程,有返回值的,有参数的,存储过程中调用存储过程。(MS SQL Server)
- 在delphi中如何调用SQL Server的存储过程(转贴)
- 在SQL Server的存储过程中调用Com组件
- 在asp中调用sql server的存储过程
- 在Sql Server的存储过程中调用Com组件
- 在asp中调用sql server的存储过程
- 在asp中调用sql server的存储过程
- 在asp中调用sql server的存储过程
- 在sql server的存储过程中调用com组件
- 在asp中调用sql server的存储过程方法
- sql server 存储过程中获取另一个存储过程返回的记录集
- 在asp.net中接收sql server中存储过程的返回值
- 在access中编程输出sql server存储过程的返回值
- SQL Server存储过程的返回值
- 如何在asp.net中获取存储过程的返回值。
- 如何在asp.net中获取存储过程的返回值。
- Handler 详解
- visual studio code 调试 sails.js
- web前端面试常见问题一---------css布局
- android应用程序的安装方式与原理
- 为什么整个互联网行业都缺前端工程师?
- 在Qt5.4中调用 sql server 2008 的存储过程如何获取返回值
- Excel 筛选A列和B列共有的数据
- cocos js添加 按钮1
- SCP免密码传输
- 学习C++编程时,遇到过的小问题
- 错误容忍(故障容忍fault tolerance)
- linux找不到mysql.h(连接不到mysql.h)
- hdoj1257_最少拦截系统(dp)
- programming-challenges File Fragmentation (110306) 题解