procedure mySelect(afields,atables :string;var aQuery :TQuery);
begin
  if ( (afields = '') or (atables = '') ) then exit;
  if aQuery <> nil Then
  begin
    aQuery.Close;
    aQuery.SQL.Clear;
    aQuery.SQL.Add('select ' + afields + ' from ' + atables);
    aQuery.Open;
  end;
end;如此,还可写其它的应用,呵呵。

解决方案 »

  1.   

    Happyledian(伍志勇) 
    老兄,好象不对吧,人家要的是储存过程
      

  2.   

    CREATE PROC TEST1 
    vablenames varchar,
    vfieldnames varchar
    as
    begin
       if vablenames ='atable' then
       select  vfieldnames  from atable ;
       else 
       if vablenames ='anothertable' then
       select  vfieldnames  from anothertable ;
        else 
        null
       end if ;
    试一下
    end ;
      

  3.   

    楼上少了一个end if ;null之后
      

  4.   

    CREATE PROC TEST1 
    vablenames varchar,
    vfieldnames varchar
    as
    begin
      if vablenames ='atable' then
      select  *  from atable ;
      else 
      if vablenames ='anothertable' then
      select  *  from anothertable ;
        else 
        null
      end if ;
      end if ;end ; 
    可能能行,上面的肯定不行
    不好做!呵呵
      

  5.   

    to kuangning(郎之间,穷人) 
    好办法
      

  6.   

    //如果是MSSQL,可以这么写
    CREATE PROCEDURE selectSQL(@tblName varchar(50),@tblfields varchar(100))
    AS
    declare @sqltext varchar(200)
    set @sqltext =' select '+@tblfields + ' from '+@tblname
    exec (@sqltext)
      

  7.   

    给你搞定了,给分啊!
    CREATE PROC TEST1 
    @tablenames varchar,
    @fieldnames varchar
    as
      --select @fieldnames from @tablenames 
     declare @sqlstr  NVarchar(300)
     set @sqlstr=N'select'+@fieldnames +' from '+  @tablenames  
     exec sp_executesql @sqlstr
    ...