Delphi TDataSet.AppendRecord 示例代码

描述

该示例代码向MyCustInfo数据追加一条记录。注意,有时候会添加一些空值,但是对于数组参数最后的空值,(例如,在Field3字段之后),可以没有值(Null)。根据表的索引,InsertRecord的行为有所不同。

代码

 procedure TForm1.Button1Click(Sender: TObject);
begin
   Customers.InsertRecord([Edit1.Text, Edit2.Text, Null, Edit3.Text]);
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
   Customers:= TTable.Create(Form1);
   with Customers do
   begin
    DatabaseName := 'DBDEMOS';
    TableType := ttParadox;
    TableName := 'MyCustInfo';
    ReadOnly:= False;

//    不要覆盖现有的表.
    if (not Customers.Exists) then CreateMyTable
    else
    begin
      if (Customers.Exists AND
        (MessageDlg('MyCustInfo table already exists.   Do you want to rebuild it?', mtConfirmation, [mbYes, mbNo], 0) = mrYes)) then
      begin
        Customers.Close;
        Customers.DeleteTable;
        CreateMyTable;
      end;
    end;
   end;
   DS2.DataSet:= Customers;
   DBGrid2.DataSource.DataSet:= Customers;
   Customers.Active:= True;
end;

procedure CreateMyTable();
var
   i: Integer;
begin
//Table 组件不能处于激活状态,然后定义表中的字段和类型。
   with Customers do
   begin
      with FieldDefs do
      begin
        Clear;
        with AddFieldDef do
        begin
          Name := 'Field1';
          DataType := ftInteger;
          Required := True;
        end;
        with AddFieldDef do
        begin
          Name := 'Field2';
          DataType := ftString;
          Size := 30;
        end;
        with AddFieldDef do
        begin
          Name := 'Field3';
          DataType := ftString;
          Size := 30;
        end;
        with AddFieldDef do
        begin
          Name := 'Field4';
          DataType := ftString;
          Size := 30;
        end;
      end;

//    清除原有索引.
//    接着重新定义索引.
      with IndexDefs do
      begin
        Clear;
//        第一索引没有Name
//        这是一个主键
        with AddIndexDef do
        begin
          Name := '';
          Fields := 'Field1';
          Options := [ixPrimary];
        end;
        with AddIndexDef do
        begin
          Name := 'Fld2Indx';
          Fields := 'Field2';
          Options := [ixCaseInsensitive];
        end;
      end;

//      调用CreateTable方法来创建表.
      CreateTable;
      Customers.Active:= True;
      for i := 1 to 20 do
        Customers.AppendRecord([i*111, i*222, i*333, i*444]);
    end;
end;





联系电话:
020-00000000
联系电话:
020-00000000
联系电话:
020-12345678