一般步骤:
    var table:TClientDataSet;
1.  table:=TClientDataSet.Create(application);
2.  table.FieldDefs.Add(); 给动态表定义字段即设计表的结构 
...
3.  table.CreateDataSet;
4.  table.open;
5.  table.append;
6.  table.FieldByName().AsXXX:=XXX; 给字段赋值即加数据
...
7.  table.post;
问题
一:如果from上已有TClientDataSet控件,第1步可以不要吧?
二:如果我用TClientDataSet.data:=XXX来给TClientDataSet加数据呢,第2步还要吗?
三:如果只写第3步,没写第2步的话,后面如何使用这个动态表呢?

解决方案 »

  1.   

    1)一般用ClientdataSet创建动态表是指创建内存表,所以ClientDataSet按习惯是在代码中生成的。如果使用界面上已有的控件,当然可以。
    2)如果这样,第2、3、4步可以不要。
    3)像一般的DataSet那样使用即可,如Edit1.text:=table.FieldByName().AsString
      

  2.   

    1.TClientDataSet.data:=XXX,这一步相当于把整个表(字段结构和具体数据)赋给了控件是吗?
    2.没有第2步,那内存表就没有结构(没有字段定义),那么对它使用FieldByName()取的是什么?
    3.table.CreateDataSet(nil)和table和TClientDataSet.Create(application)有什么区别,如果同时出现在程序里,那是指同一个TClientDataSet吗?