RAD Studio VCL Reference
|
Inserts a new, empty record in the dataset.
procedure Insert;
__fastcall Insert();
Call Insert to:
1Open a new, empty record in the dataset.
2Set the active record to the new record.
After a call to Insert, an application can allow users to enter data in the fields of the record, and then post those changes to the database or change log using Post. (Client datasets can subsequently apply updates in the change log back to the database by calling ApplyUpdates.) A newly inserted record is posted in one of three ways:
For Paradox tables with primary indexes, the record is inserted into the dataset in a position based on its index.
For Paradox tables without primary indexes, the record is inserted into the dataset at the current position.
For dBASE, FoxPro, and Access tables, the record is physically appended to the dataset at the end. If an index happens to be active, the new record may appear in a position relative to the index, but the record is still actually stored at the end of the table.
For SQL databases, the physical location of the insert is implementation-specific. For indexed tables, the index is updated with the new record information.
After the new record is applied back to the database server, its physical location is database-specific. For indexed tables, the index is updated with the new record information.
Delphi Examples:
{ This example uses the BeforeInsert event to do data validation. If the StrToInt function raises an exception, the edit control’s contents are set to a valid value so that the assignment to the INTEGER field in the dataset will succeed. Continuing after the exception causes a '0' to be placed in the PORTA field. DataSet design: This example requires a ClientDataSet, a DBGrid, a DataSource and a DBNavigator. Name the ClientDataSet CDS. Set the DataSet property in the DataSource to CDS and name that DataSource DS. Set the DataSource in the DBNavigator to DS the DataSource in the DBGrid to DS. Right click on CDS and select the Fields Editor, then right click on the Field Editor form and create two fields by selecting "new field". In the field configuration window, set the name to HOST, the Component value will automatically be set to CDSHOST. Set the filed type to String. In the field configuration window for the second field, set the name to PORTA, the Component value will automatically be set to CDSPORTA. Set the field type to Integer. The file used to load CDS must have an attribute name of HOST with an attribute type of string and an attribute name of PORTA with an attribute type of integer. Add DB, DBCtrls, Grids, DBGrids and DBClient to the uses clause. } {$IFNDEF UNICODE} uses SwSystem; {$ENDIF} procedure TForm1.Button3Click(Sender: TObject); begin CDS.Insert; CDS.FieldByName('PORTA').AsInteger := StrToInt(Edit1.Text); CDS.Post; end; procedure TForm1.CDSBeforeInsert(DataSet: TDataSet); begin try { Make sure edit field can be converted to integer -- this will raise an exception if it can’t } StrToInt(Edit1.Text); except Edit1.Text := '0'; end; end; procedure TForm1.FormCreate(Sender: TObject); begin {$IFDEF UNICODE} CDS.LoadFromFile(GetCurrentDir + '\CDS.XML'); {$ELSE} CDS.LoadFromFile(gsAppPath + 'CDS.XML'); {$ENDIF} end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|