在网上看到了个流水号的存储过程
create table ident(value int)
insert ident select 0
----创建存储过程
CREATE PROCEDURE usp_getNo (@no char(8) output)
as
declare @value int
update ident
set @value=value=value+1
set @no=+RIGHT(ltrim([email protected]),8)
然后再PB调用
long ll_Row
String ls_cSerialNo
DECLARE Procedure_1 PROCEDURE FOR usp_getNo @cSerialNo=:ls_cSerialNo OUTPUT;
EXECUTE Procedure_1 ;
fetch Procedure_1 into :ls_cSerialNo;
CLOSE Procedure_1;
messagebox( " ",ls_cSerialNo)
老返回空 就在 这 EXECUTE Procedure_1 ; 看了下它执行的sqlcode 报错 信息是
向存储过程传递变量时不能使用OUTPUT选项
在网上找了下 也没有看到具体怎么解决的求指教
------解决方案--------------------
DECLARE Procedure_1 PROCEDURE FOR usp_getNo @no=:ls_cSerialNo OUTPUT;
------解决方案--------------------
ls_cSerialNo 为null ?
需要赋值吧.
------解决方案--------------------
13.调用SQL Server存储过程问题(通过ODBC连接sqlserver数据库调用存储过程并获得return或output的值)
1、新建一个standard class,并在select standard class type 中选择transaction,这时会打开一个声明函数的窗口
2、在上面的窗口上选择底部的 Declare instance variables 页,在变量类型的下拉框中选择 Local External Functions
3、在空白处右键选择aste -> SQL->remote stored procedure,回出现选择存储过程的窗口,选择即可生成函数
如: CREATE PROCEDURE sp_test (@pinput varchar(10))
AS
return 1000
GO
选择sp_test的时候生成如下函数声明
function long sp_test(string pinput) RPCFUNC ALIAS FOR "dbo.sp_test"
4、保存你的对象为:uo_tran
5、双击打开应用,选择additional properties ->variable types,修改SQLCA中的 transaction为uo_tran即可
6、然后你在程序中就可以象使用函数一样调用您的存储过程,如:
integer li_return
li_return=Sqlca.sp_test('111')
保证能用,无论是ODBC还是直连,
------解决方案--------------------
------解决方案--------------------
sqlca.autocommit = trueDECLARE Procedure_1 PROCEDURE FOR usp_getNo @No=:ls_cSerialNo OUTPUT;
EXECUTE Procedure_1 ;
fetch Procedure_1 into :ls_cSerialNo;
CLOSE Procedure_1;
messagebox( " ",ls_cSerialNo)
sqlca.autocommit = false
------解决方案--------------------
从2011年7月23日开始,到了每天凌晨,7月22日以后发的帖子和回复的帖子都会被CSDN恶意的沉掉。每天早上上论坛,帖子列表中能看到的帖子的最后更新日期最晚是7月22日。这无疑让很多提问者的帖子无法被大家浏览,进而无法及时给予解答。
希望 版主:lzp_lrp 能够帮忙反映问题!!!
从“我的社区 → 我回复的帖子”中,可以正常的看到自己回复过的帖子,所以我决定每天手动将我回复过得帖子重新顶起来,希望大家理解并支持我的做法。
希望看到的人,可以帮忙顶一下,毕竟我只能连续砌三楼
最近回复过的帖子,被CSDN给沉了,重新顶起
------解决方案--------------------
帮顶!!!!!