Q:  How do I flush the data buffer to the table?  (i.e. hard write to disk)

A:  This will allow you to commit changes to disk without incurring the performance hit of LocalShare.  You might write a procedure something like this:

{ This will work for TQueries and TTables. }
procedure FlushBuffer(DataSet: TDataSet);
begin
  with DataSet do begin
    UpdateCursorPos;
    check(dbiSaveChanges(Handle));
    CursorPosChanged;
  end;
end;
 

note:  runs with version 2