请教执行存储过程的问题?
系统后台数据库为sybase for solaris.有存储过程
CREATE PROCEDURE dbo.ue_backup
AS
declare @sql char(255)
BEGIN
select @sql='dump database dxtkbj to '+"'/data/bj/backup/bj"+convert(char(8),getdate(),112)+".dump'"
exec (@sql)
END
用来备份数据库.
在开发环境下,找到存储过程,点右键edit data->grid,可以正常执行.然而,执行
exec ue_backup;则系统没有反应,后台日志没有错误提示.这两种执行存储过程方法有什么不同?
在程序中执行ue_backup,也没有反应.
(已将autocommit设为true,用户为sa,pb9升级到8614)
问题点数:20、回复次数:6Top
1 楼gahade(与君共勉)回复于 2006-04-03 15:39:38 得分 0
PB中可用sqlca.of_execute("ue_backup")来执行存储过程Top
2 楼pbj()回复于 2006-04-03 15:52:35 得分 0
请问of_execute是什么?Top
3 楼pbj()回复于 2006-04-04 07:31:06 得分 0
upTop
4 楼li_d_s(鄙视那些不懂Java却跑来乱骂的人,.NET没啥了不起)回复于 2006-04-04 09:55:20 得分 0
那个是自己写的函数,实际上是拼动态sql来执行,如果要用嵌入sql要先declareTop
5 楼pbj()回复于 2006-04-04 15:00:25 得分 0
代码中如何调用存储过程我是知道的,就是不知道调用后为什么不执行?我感觉和数据库有关系,请各位大侠指点!Top
6 楼dxtkwj()回复于 2006-04-07 17:28:01 得分 20
执行存储过程另类方法:
转贴:
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还是直连,
Top




