你们肯定奇怪我为什么不用open返回一结果集吧..
问题是这样的:我在存储过程中:
先得到一个值,若些值为1直接返回.
若该值为0,则建立临时表等操做,并返回些临时表的数据..所以不能用open,因为可以没有结果集返回.我想用execproc................................可是它是不是不返结果集...?听明白我的意思了吗??????
问题是这样的:我在存储过程中:
先得到一个值,若些值为1直接返回.
若该值为0,则建立临时表等操做,并返回些临时表的数据..所以不能用open,因为可以没有结果集返回.我想用execproc................................可是它是不是不返结果集...?听明白我的意思了吗??????
解决方案 »
- DELPHI下简单高效的SOCKET控件如何选择?
- SpeedButton的transparent属性为true ,Flat:=True 一运行程序仍然不透明,怎么办!!
- 有没有替代delphi自带的TrackBar控件吗
- 怎么调用DLL里面类的方法! 有代码!!!请指教!
- delphi现在最常用的数据库访问组件是什么
- 如何实现在工具栏右下角弹出消息提示的效果
- 初学者一问,关于快速输入函数
- zfmich() 请进
- Internet中的UDPSocket控件和FastNet中的NMUDP控件有什么区别呢?
- 有d5 的Ado的补丁吗?不知是哪里下载?
- 为什么在数据表中的real类型的数据只有两位小数,而到了DBGrid中显示的数据小数点后却有很多位??如何改变这种情况
- InstallShield和wise install那个好些?
1:先得到一个值,若些值为1直接返回.
select @Value
return
2: 若该值为0,则建立临时表等操做,并返回些临时表的数据..
select * from #Temtable...前台可通过判断 TDataSet.Field.Count个数以决定是返回条件一还二的结果
1> Str := Fields[0].Asstring;
2> 则对数据集对行操作
2 你可以用全局临时表,这样你的存储过程执行以后,你在客户端可以根据返回值然后到临时表select,不过这是两次交互动作,没有1好
adospTemp.ExecProc;
//表是否为空 1表示空,0表示不空
iTableEmpty := adospTemp.Parameters.ParamByName('@TableEmpty').Value;
if iTableEmpty=1 then
begin
Result := false;
exit;
end;
//adospTemp.Open; /
// adospTemp.First; //这下要检测是否有记录.....用什么语句? while (not adospTemp.Eof) do
begin
//将数据写INI文件
WriteJpgParamsToInif(strCurrentModel,adospTemp.FieldByName('Station').Value
,adospTemp.FieldByName('JpgID').Value);
adospTemp.Next;
end;
===============================不对吧..当没有返回结果集的时候,也就是说存储过程中根据没有执行select语句时
如果用open肯定会出现异常..."没有结果集返回"
1> Str := Fields[0].Asstring;
2> 则对数据集对行操作
============================
2> 则对数据集对行操作????这怎么写..?我这是时如何得到结果集?
以下面这个简单的存储过程为例....:
-----------------
CREATE PROCEDURE TEST
(
@value char(1)
)
AS declare @A CHAR(1)
...........
IF @A ='1'
beign
select @value ='1'
return
end; select * from t
GO
==================
前端如何得到?