当前位置: 代码迷 >> Sql Server >> 怎么利用动态拼接的SQL语句的执行结果
  详细解决方案

怎么利用动态拼接的SQL语句的执行结果

热度:41   发布时间:2016-04-27 13:02:12.0
如何利用动态拼接的SQL语句的执行结果
SQL code
--if object_id('CHENGJI') is not null drop table CHENGJI--create table CHENGJI--(--    id int NOT NULL,--    chengji int NOT NULL,--    xingming varchar(30) NOT NULL,--    banji int NOT NULL--)--insert CHENGJI--select 1,90,'张三',14 union--select 2,70,'李四',17 union--select 3,80,'张三',14 union--select 4,60,'张三',14 union--select 5,77,'李四',17 union--select 6,80,'张三',14 union--select 7,90,'李四',17 union--select 8,70,'李四',17 --godeclare @Sql varchar(300)declare @chengji intSet @chengji=80Set @Sql=' Select id,chengji,xingming ,banji  From CHENGJI  Where chengji='+cast(@Chengji as varchar(10))Print(@Sql)exec(@Sql)


执行SQL语句后能正常返回结果集。
但问题是这个结果集怎么使用,比如要实现类似效果:
Delphi(Pascal) code
procedure TForm1.Button1Click(Sender: TObject);begin  ADOQuery1.Close;  ADOQuery1.SQL.Clear;  ADOQuery1.SQL.Add('Select id,chengji,banji,xingming From CHENGJI where chengji=80');  ADOQuery1.Open;  Memo1.Lines.Clear;  While ADOQuery1.Eof =false do  begin    Memo1.Lines.Add(ADOQuery1.FieldByName('id').AsString);    Memo1.Lines.Add(IntToStr(ADOQuery1.FieldByName('chengji').AsInteger));    Memo1.Lines.Add(ADOQuery1.FieldByName('xingming').AsString);    Memo1.Lines.Add(ADOQuery1.FieldByName('banji').AsString);    ADOQuery1.Next;  end;  ADOQuery1.Close;end;


即动态拼接的SQL执行后的结果集如何使用,谢谢

------解决方案--------------------
探讨

即最后想实现:
Select exec(@Sql),有没有招...
  相关解决方案