with sp_skrbb do
begin
Close;
ProcedureName := 'YourProc';
Parameters[1].value := trimright(edit1.text);
parameters[2].value := trimright(edit2.text);
Prepared := true;
open;
begin
Close;
ProcedureName := 'YourProc';
Parameters[1].value := trimright(edit1.text);
parameters[2].value := trimright(edit2.text);
Prepared := true;
open;
否则将输出的结果存放在一个临时表中;
Proc的返回值不能直接输出到dbgrid中的,
AdoQuery1.Close;
Adoquery1.sql.text := 'exec test';
Adoquery1.open;
dbgrid1.datasource := datasource1 这个也是在属性里面定义的
select * from #temptable
这里的#temptable是在存储过程里面生成的。
用上面的Tquery查询的方法提示说:没有返回纪录集。
用存储过程TProc就没有提示,也没有数据。
而且我返回的是纪录集,不是参数变量。
为什么呢?
proc.paramters.refresh;
proc.parambyname('field1').value := ''
...
proc.open
select ... into ...
if exists(select...)
select @a=...
等不返回数据集的Select语句。
可以在SQL Query Analyzer中执行一下StoredProc,所有返回数据集的Select的结果都会显示出来,(不想DBGrid只显示一个数据集)
with Grid_sk do
...
begin
这一段代码去掉是一下看。