TADOQuery用法

test88666 2013-02-04 02:33:28
在TADOQuery的语句上面输入如下:
Select * from Tablea
Select * from Tableb
那么会出来两个结果集,可是在DELPHI中如何可以获取其中一个?在SQL中会分成两个窗口来显示,但是DELPHI只显示了第一条语句的结果。请问要如何操作才可以把这样的语句绑定?
...全文
610 10 点赞 打赏 收藏 举报
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
test88666 2013-03-04
多谢了!
  • 打赏
  • 举报
回复
dey999 2013-02-28
1、TClientDataSet可以,我就是这样用的,注意返回值是OleVariant类型,获得返回值后,可以这样操作: cds1,cds2,cds3,cds4,cds5:TClientDataSet; cds1.Data := vData1; cds2.Data := vData2; cds3.Data := vData3; cds4.Data := vData4; cds5.Data := vData5; TDataSource.DataSet=TClientDataSet就可以了 2、但是如果你一定要用TADOQuery,那么你直接qry_tmp.RecordSet := NextRecordset(i_Rst); 3、代码 function GetStastic_DoingQuery(var vData1, vData2, vData3, vData4, vData5: OleVariant): Boolean; var i_Rst:Integer; s_Depart,s_Finished:String; s_ProcCode,s_MapNo,s_PlanDate:String; qry_tmp:TADOQuery; dsp_tmp:TDataSetProvider; begin Result := False; s_Depart := Depart; s_Finished := Finished; s_ProcCode := ProcCode; s_MapNo := MapNo; s_PlanDate := PlanDate; try qry_tmp:=TADOQuery.Create(nil); dsp_tmp:=TDataSetProvider.Create(nil); dsp_tmp.DataSet := qry_tmp; with adq_SQL do begin Close; SQL.Clear; SQL.Add('exec 存储过程名称及参数列表'); if s_PlanDate<>'' then SQL.Add(','+quotedstr(s_PlanDate)); Open; qry_tmp.RecordSet := RecordSet; vData1 := dsp_tmp.Data; qry_tmp.RecordSet := NextRecordset(i_Rst); vData2 := dsp_tmp.Data; qry_tmp.RecordSet := NextRecordset(i_Rst); vData3 := dsp_tmp.Data; qry_tmp.RecordSet := NextRecordset(i_Rst); vData4 := dsp_tmp.Data; qry_tmp.RecordSet := NextRecordset(i_Rst); vData5 := dsp_tmp.Data; end; Result := True; finally if Assigned(qry_tmp) then qry_tmp.Free; if Assigned(dsp_tmp) then dsp_tmp.Free; end; end;
  • 打赏
  • 举报
回复
simonhehe 2013-02-28
引用 7 楼 test88666 的回复:
还是无人知道怎么做的吗?
delphi的query不支持多结果集, 只能分开处理. 存储过程要想适用于delphi, 就对返回结果做下处理
  • 打赏
  • 举报
回复
test88666 2013-02-28
还是无人知道怎么做的吗?
  • 打赏
  • 举报
回复
一路随云 2013-02-14
马克一下 以后学习!
  • 打赏
  • 举报
回复
lhy 2013-02-13
可以把两个表连接起来吧
  • 打赏
  • 举报
回复
Limino 2013-02-10
那就用连个存储过程。
  • 打赏
  • 举报
回复
test88666 2013-02-04
引用 2 楼 lzy0577 的回复:
绑定:例如 AdoQuery1.SQL.Text := 'SELECT * FROM TABLEA',或者直接在属性里面设置
我是举个例子,实际上不是那么简单的语句,是一个存储过程,会出来两个结果。
  • 打赏
  • 举报
回复
lzy0577 2013-02-04
绑定:例如 AdoQuery1.SQL.Text := 'SELECT * FROM TABLEA',或者直接在属性里面设置
  • 打赏
  • 举报
回复
lzy0577 2013-02-04
你要两个数据集同时用的话,就用两个AdoQuery,否则你就打开一个,用完之后关闭,再查另一个
  • 打赏
  • 举报
回复
相关推荐
发帖
Delphi
加入

4972

社区成员

Delphi 开发及应用
申请成为版主
帖子事件
创建了帖子
2013-02-04 02:33
社区公告
暂无公告