小弟用企业管理器写了某简单存储过程(学习中……)
create proc test @t1 varchar(50),@t2varchar(50)
as
insert into table1 values (@t1,@t2)
go
检查没问题
可是我不懂用daoquery该怎么运行这个存储过程,请高手指教,谢谢!
最好能写详细一点,谢谢!
create proc test @t1 varchar(50),@t2varchar(50)
as
insert into table1 values (@t1,@t2)
go
检查没问题
可是我不懂用daoquery该怎么运行这个存储过程,请高手指教,谢谢!
最好能写详细一点,谢谢!
ADOQuery1.ExecSQL;
with ADOStoredProc1 do
begin
procedureName='test ';
Parameters.ParamByName('t1').Value:=值1;
Parameters.ParamByName('t2').Value:=值1;
ExecProc;
end;
这个多好。
begin
close;
sql.clear;
sql.add('exec test ' + 参数1 + ' ' + 参数2);
execsql;
end;
推荐ADOStoredProc1
with ADOStoredProc1 do
begin
procedureName='test ';
Parameters.ParamByName('@t1').Value:=值1;
Parameters.ParamByName('@t2').Value:=值1;
ExecProc;
if Parameters.ParamByName('@returnvalue').value =-1 then showmessage('存储过程出错');//如果存储过程出错它的返回值为-1,如果成功而你又不在存储过程中return值那么默认为0,如果指定了就是你指定的成功的值
end;另外你的存储过程应该这样写
create proc test @t1 varchar(50),@t2varchar(50)
as
begin
insert into table1 values (@t1,@t2)
if @@error > 0 goto error_insert;
return 0 --返回其他值也可(必须整型 ),程序中根据@returnvalue来取的此值,show出来看看就知道了
end
error_insert:
return -1 --返回其他值也可(必须整型 ),程序中根据@returnvalue来取的此值,show出来看看就知道了
goadoquery1的写法
with adoquery1 do
begin
close;
sql.clear;
sql.add('exec test ' +QuotedStr( 参数1) + ', ' +QuotedStr( 参数2));
execsql;
end;