存储过程:
CREATE PROCEDURE pro_select
@table varchar(50),
@outstr varchar(50) output
AS
select systemid,systemname from Tsystem where tablename=@table
set @outstr='gigi'
return 5
GO用dbExpress的SQLStoredProc:
SQLStoredProc1的属性已经连接好。
用代码获得返回、输出值:
SQLStoredProc1.Close;
SQLStoredProc1.Params.Items[1].Value:='Tsystem';
SQLStoredProc1.Open;
//返回值
showmessage(SQLStoredProc1.Params.Items[0].value);
//输出值
showmessage(SQLStoredProc1.Params.Items[2].value);用ADO的ADOStoredProc:
ADOStoredProc1的属性已经连接好。
用代码获得返回、输出值:
ADOStoredProc1.Close;
ADOStoredProc1.Parameters.Items[1].Value:='Tsystem';
ADOStoredProc1.Open;
showmessage(ADOStoredProc1.Parameters.Items[0].value);//返回值
showmessage(ADOStoredProc1.Parameters.Items[2].value);//输出值为什么在ADO可以,而在dbExpress却不能获得返回值、输出值???
如何在dbExpress获得?
CREATE PROCEDURE pro_select
@table varchar(50),
@outstr varchar(50) output
AS
select systemid,systemname from Tsystem where tablename=@table
set @outstr='gigi'
return 5
GO用dbExpress的SQLStoredProc:
SQLStoredProc1的属性已经连接好。
用代码获得返回、输出值:
SQLStoredProc1.Close;
SQLStoredProc1.Params.Items[1].Value:='Tsystem';
SQLStoredProc1.Open;
//返回值
showmessage(SQLStoredProc1.Params.Items[0].value);
//输出值
showmessage(SQLStoredProc1.Params.Items[2].value);用ADO的ADOStoredProc:
ADOStoredProc1的属性已经连接好。
用代码获得返回、输出值:
ADOStoredProc1.Close;
ADOStoredProc1.Parameters.Items[1].Value:='Tsystem';
ADOStoredProc1.Open;
showmessage(ADOStoredProc1.Parameters.Items[0].value);//返回值
showmessage(ADOStoredProc1.Parameters.Items[2].value);//输出值为什么在ADO可以,而在dbExpress却不能获得返回值、输出值???
如何在dbExpress获得?
我的是dbExpress+SQL2000。
我的存储过程没错,能查询数据,就是不能返回值(一直是0)和输出值(为空)
在我的问题中SQLStoredProc1.Params.Items[0]就是result类型的,
但showmessage(SQLStoredProc1.Params.Items[0].value)一直是0。