带返回参数的动态存储过程的写法

mrzj 2001-09-11 12:25:31
CREATE PROCEDURE Forum_GetMaxID
@MaxMainID int Output ,
@Forumtablename char(30)
as
set nocount on
select @MaxPhysicsID=max(physicsID) , @MaxMainID=max(mainID) from Forumtablename
if @MaxMainID is null select @MaxMainID=0

注:
@MaxMainID是返回参数
@Forumtablename是进入参数,为表的名称
怎么把它转化为exec的SQL命令呢!
...全文
97 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiubolecn 2001-09-13
  • 打赏
  • 举报
回复
exec Forum_GetMaxID @MaxPhysicsID=参数1,@Forumtablename=参数2
copy_paste 2001-09-13
  • 打赏
  • 举报
回复
with Query1 do
begin
SQL.Text :=
'declare @Param1 varchar(100)' + #13 +
'exec Forum_GetMaxID @Param1 output, ''Param2Value''' + #13 +
'select @Param1';
Open;
ShowMessage('this store result Value: ' + Fields[0].AsString);
end;

可以直接到Query Analyzer执行SQL.Text的内容。
newyj 2001-09-12
  • 打赏
  • 举报
回复
CREATE PROCEDURE Forum_GetMaxID
@MaxMainID int Output ,
@Forumtablename char(30)
as
declare @csql char(255)
set nocount on
set @csql ='select '+@MaxPhysicsID'+'=max(physicsID) , '+ @MaxMainID+
'=max(mainID) from' + @Forumtablename + CHAR(10) +char(13)+
'if '+@MaxMainID+' is null select '+@MaxMainID+'=0'
execute(@csql)
mrzj 2001-09-12
  • 打赏
  • 举报
回复
  在Delphi中我会调用,我是问在SQL中怎么把上面的存储过程的写法转为用exec来写。

  newyj你写的Delphi语句和上面的存储过程配合执行,有错误。
  存储过程中@Forumtablename是个变量,它是不能直接跟在from后面的。
newyj 2001-09-12
  • 打赏
  • 举报
回复
用TStoredProc

StoredProc1.ParamByName('@Forumtablename').asstring :='dfafafdasfdasf';
StoredProc1.execsql;

edit1.text:= StoredProc1.ParamByName('@Forumtablename').asstring

5,392

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧