Delphi ClientDataSet + DataSource在 DBGrid 中展示数据  
官方Delphi 学习QQ群: 682628230(三千人)
频道

Delphi ClientDataSet + DataSource在 DBGrid 中展示数据


4142067b700144318b105bf36319885f.png


procedure TForm_DBControl.Button_AppendClick(Sender: TObject);

begin

  ClientDataSet_1.Append;

  with ClientDataSet_1.Fields do

  begin

    FieldByName('字段1').AsString := '追加1';

    FieldByName('字段2').AsString := '追加2';

    FieldByName('字段3').AsString := '追加3';

  end;

  ClientDataSet_1.Post;

end;


procedure TForm_DBControl.Button_ClientDataSetClick(Sender: TObject);

begin

  Memo_Log.Lines.Add('这个功能是 把 ClientDataSet_1 里面的数据通过 DataSource 在 DBGrid_1 中展示');


  with ClientDataSet_1 do

  begin

    Close;

    FieldDefs.Clear; // 清空已定义的字段


    // 开始添加字段

    with FieldDefs.AddFieldDef do

    begin

      Name := '字段1';        // 字段名

      DataType := ftString;   // 字段类型

    end;

    with FieldDefs.AddFieldDef do

    begin

      Name := '字段2';        // 字段名

      DataType := ftString;   // 字段类型

    end;

    with FieldDefs.AddFieldDef do

    begin

      Name := '字段3';        // 字段名

      DataType := ftString;   // 字段类型

    end;


    CreateDataSet; // 创建数据集

    Open;          // 激活和打开数据集


    // 这里是设置字段在显示时候所占宽

    with Fields do

    begin

      FieldByName('字段1').DisplayWidth := 10;

      FieldByName('字段2').DisplayWidth := 20;

      FieldByName('字段3').DisplayWidth := 30;

    end;


    // 然后开始给相应的字段追加内容

    Append;

    with Fields do

    begin

      FieldByName('字段1').AsString := '0, 0';

      FieldByName('字段2').AsString := '0, 1';

      FieldByName('字段3').AsString := '0, 2';

    end;

    Append;

    with Fields do

    begin

      FieldByName('字段1').AsString := '1, 0';

      FieldByName('字段2').AsString := '1, 1';

      FieldByName('字段3').AsString := '1, 2';

    end;

    Append;

    with Fields do

    begin

      FieldByName('字段1').AsString := '2, 0';

      FieldByName('字段2').AsString := '2, 1';

      FieldByName('字段3').AsString := '2, 2';

    end;

    Post;

  end;


  // 数据已经有了,然后就需要设置 DataSource 进行数据的分发了

  DataSource_1.DataSet := ClientDataSet_1;


  // 然后就是让 DBGrid_1 绑定 DataSource_1

  DBGrid_1.DataSource := DataSource_1;


end;


procedure TForm_DBControl.Button_DeleteClick(Sender: TObject);

var

  mStr: string;

  mArr: array[0..255] of WideChar;

begin

  mStr := '是否确认删除: ' + ClientDataSet_1.Fields.FieldByName('字段1').AsString;

  if MessageBox(self.Handle, StringToWideChar(mStr, mArr, Length(mStr) + 1), '提示', MB_OKCANCEL or MB_ICONINFORMATION) = IDOK then

    ClientDataSet_1.Delete;

end;

————————————————


原文链接:https://blog.csdn.net/qq_44111597/article/details/117599298



推荐分享
图文皆来源于网络,内容仅做公益性分享,版权归原作者所有,如有侵权请告知删除!
 

Copyright © 2014 DelphiW.com 开发 源码 文档 技巧 All Rights Reserved
晋ICP备14006235号-8 晋公网安备 14108102000087号

执行时间: 0.094862937927246 seconds