我想建一个dataset,然后添加数据
var
dataset:TClientDataset;
begin
dataset:=TClientDataset.create(form);
dataset.append;
//然后添加数据到dataset可是出错说不能对closed dataset进行append的操作。
然后我就
var
dataset:TClientDataset;
begin
dataset:=TClientDataset.create(form);
dataset.open;
dataset.append;
//然后添加数据到dataset又出错说open的时候没有数据提供者请问是怎么回事,我应该怎么做?

解决方案 »

  1.   

    你的clientdataset连上数据库了吗?
    如果你要使用本地文件,你需要给它清添加fields!
      

  2.   

    你可能没有指定数据库文件吧CDS文件
      

  3.   

    ClientDataSet.CreateDataSet;
    前提你先在它的内部建好表结构。
      

  4.   

    先用字段编辑建好字段,再调用CreateDataset方法.示例如下:
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, DB, DBClient, StdCtrls, Grids, DBGrids;type
      TForm1 = class(TForm)
        Button1: TButton;
        ClientDataSet1: TClientDataSet;
        ClientDataSet1a: TIntegerField;
        ClientDataSet1b: TIntegerField;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        procedure Button1Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    var
      ii : integer;
    begin
      with clientdataset1 do
      begin
        CreateDataSet;
        for ii := 1 to 10 do
        begin
          Append;
          FieldByName('a').Value := ii;
          FieldByName('b').Value := ii * 2;
        end;
      end;
    end;end.
      

  5.   

    为数据集指定有效的提供者(ProviderName)了吗?还要记得没打开或激活(没Open怎么去Append?)。