Es gibt keinen Unterschied zwischen dem Einsatz in den meisten Datenbanken und anhängen. Eine tatsächliche physische Einfügung würde bedeuten, alle Daten tatsächlich zu verschieben, beginnend mit dem Platz, an dem die neue Zeile eingefügt werden würde, um die Größe einer Zeile herunterzufahren und dann diese neue Zeile in den neu geöffneten Punkt zu schreiben. Dies wäre wegen der gesamten Plattenaktivität sehr langsam.
Datenbanken verwenden stattdessen einen Append, der die Daten an das Ende der physischen Datei schreibt, und die Indexreihenfolge steuert die Art und Weise, in der die Zeile an der richtigen Stelle in der Datei positioniert wird.
Für die meisten Absichten und Zwecke erhalten Sie wahrscheinlich bereits einen Anhang anstelle einer Einfügung, unabhängig davon, welche Methode Sie verwenden oder was die Schaltfläche im DBNavigator sagt. Es ist der Index, der es anders erscheinen lässt.
Sie können dies auf Gültigkeit prüfen, indem Sie eine Datenbank ohne Index erstellen und versuchen, sowohl ein Einfügen als auch ein Anhängen ein paar Mal durchzuführen und die Daten nach jeder Operation sorgfältig zu untersuchen.
In Lazarus, mit FormCreate THackDBNavigator (myDBNavigator) .Buttons [nbInsert] .OnClick: = DBNavigatorInsertClick; Ich habe einen Fehler messsage: Fehler: Falsche Anzahl der Parameter für den Aufruf von "DBNavigatorInsertClick" angegeben. Irgendwelche Tipps? – jcfaria
Mit Lazarus verwenden Sie entweder '{$ mode delphi}' oder den '@' Operator: 'THackDBNavigator (DBNavigator1) .Buttons [nbInsert] .OnClick: = @DBNavigatorInsertClick;' –
Es funktioniert! Vielen Dank. – jcfaria