ClientDataSet1.Active := True;
ClientDataSet1.Fields.Fields[0].Size := 100;这样写为什么不行? 会报错,
出错信息:"Cannot perform this operation on an open dataset"我不想静态设置字段长度,一定要动态的....各位大侠帮个忙, 小弟初写程序.

解决方案 »

  1.   

    修改
    1、数据库中字段的长度;
    2、显示长度。还是
    3、限制在前端的数据长度?如果是1,是不可能这么简单实现的。
    2、ClientDataSet1.Fields.Fields[0].DisplayWidth := 100;
    3、
    ClientDataSet1.Close;
    ClientDataSet1.Fields.Fields[0].Size := 100;
    ClientDataSet1.Open;————————————————————————————————————
    宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
    ————————————————————————————————————
      

  2.   

    其他的楼上讲得不错
    必须先关闭DATASET
    然后用一个QUERY来
    sql.clear;
    sql.add(' alter table alter column 要改的COLUMN名 类型....')
    sql.execsql;
      

  3.   

    如果先关闭的话,会产生错误的."List index out of bounds(0)"