我的SQL语句生成的列是不定,无法在dxDBGrid中先设好有多少列
只能在程序中动态的生成这些列,请问各位高手如何解决。

解决方案 »

  1.   

    procedure TForm1.RzButton1Click(Sender: TObject);
    begin
      if os1.Connected then  os1.Connected := false else os1.Connected := true;
    end;procedure TForm1.RzButton2Click(Sender: TObject);
    var
      i: integer;
    begin
      ods1.Close;
      for i := cxGrid1DBTableView1.ColumnCount - 1 downto 0 do
        cxGrid1DBTableView1.Columns[i].Destroy;
      ods1.SQL.Clear;
      ods1.SQL.Text := RzMemo1.Text;
      ods1.ExecSQL;
      ods1.Open;
      for i := 0 to ods1.FieldCount - 1 do
        cxGrid1DBTableView1.CreateColumn.DataBinding.FieldName := ods1.Fields[i].FieldName;
    end;
      

  2.   

    to cdhuanglei(落花岛上花倒落): 你所写的是cx控件的用法,cx和dx虽然为同一个公司的作品,但是基本上是完全不同的两个系列。
      

  3.   

    我用CreateDefaultColumn()方法解决了,但还有一个问题,就是怎么改变列的类型,
    dxDBGrid的列的类型默认的人民币的类型。
      

  4.   

    CreateColumnEx才可以定制列的类型