case DBGrid1.SelectedIndex of
     0 : sqlVar := 'SELECT * FROM TABLE1';
     1 :sqlVar := 'SELECT * FROM TABLE2';
     2 :sqlVar := 'SELECT * FROM TABLE3';
     3 :sqlVar := 'SELECT * FROM TABLE3';
     4 :sqlVar := 'SELECT * FROM TABLE3';
     .
     .
     .变成类似下面的需求(主要是列数不能确定有多少,由数据表控制列数。)VAR NoVar : Integer;
begin
  NoVar := DBGrid1.SelectedField.FieldNo - 1;
  case DBGrid1.SelectedIndex of
     0 : sqlVar := 'SELECT * FROM TABLE1';
     1 :sqlVar := 'SELECT * FROM TABLE2';
     //需要循环
     NoVar :sqlVar := 'SELECT * FROM TABLE3';
     NoVar :sqlVar := 'SELECT * FROM TABLE3';
     NoVar :sqlVar := 'SELECT * FROM TABLE3';
     .
     .
     .
end;

解决方案 »

  1.   

    function GetSQL(Index: Integer): String;
    begin
      Result := 'SELECT * FROM TABLE' + IntToStr(Index + 1);
    end;调用:GetSQL(DBGrid1.SelectedIndex)————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————