ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/trunk/runtime/nongui/IBCustomDataSet.pas
(Generate patch)

Comparing ibx/trunk/runtime/nongui/IBCustomDataSet.pas (file contents):
Revision 214 by tony, Thu Mar 15 13:07:49 2018 UTC vs.
Revision 221 by tony, Mon Mar 19 09:48:37 2018 UTC

# Line 49 | Line 49 | interface
49   uses
50   {$IFDEF WINDOWS }
51    Windows,
52 < {$ELSE}
52 > {$ENDIF}
53 > {$IFDEF UNIX}
54    unix,
55   {$ENDIF}
56    SysUtils, Classes, IBDatabase, IBExternals, IB,  IBSQL, Db,
# Line 1411 | Line 1412 | begin
1412    inherited Create;
1413    FDataSet := ADataSet;
1414    FTimer := TFPTimer.Create(nil);
1415 <  {$IF FPC_FULLVERSION >= 30002}
1415 <  FTimer.Enabled := true;
1416 <  {$IFEND}
1415 >  FTimer.Enabled := false;
1416    FTimer.Interval := 0;
1417    FTimer.OnTimer := HandleRefreshTimer;
1418    FDelayTimerValue := 0;
# Line 1428 | Line 1427 | end;
1427  
1428   procedure TIBDataLink.HandleRefreshTimer(Sender: TObject);
1429   begin
1430 <  FTimer.StopTimer;
1430 >  FTimer.Enabled := false;
1431    if FDataSet.Active then
1432      FDataSet.RefreshParams;
1433   end;
# Line 1437 | Line 1436 | procedure TIBDataLink.SetDelayTimerValue
1436   begin
1437    if FDelayTimerValue = AValue then Exit;
1438    FDelayTimerValue := AValue;
1439 +  {$IF FPC_FULLVERSION >= 30002}
1440 +  if (AValue > 0) and not IsMultiThread then
1441 +    IBError(ibxeMultiThreadRequired,['TIBQuery/TIBDataset MasterDetailDelay']);
1442    FTimer.Interval := FDelayTimerValue;
1443 +  {$IFEND}
1444   end;
1445  
1446   procedure TIBDataLink.ActiveChanged;
# Line 1458 | Line 1461 | begin
1461    begin
1462      {$IF FPC_FULLVERSION >= 30002}
1463      if FDelayTimerValue > 0 then
1464 <      FTimer.StartTimer
1464 >    with FTimer do
1465 >    begin
1466 >      CheckSynchronize; {Ensure not waiting on Synchronize}
1467 >      if Enabled then
1468 >      begin
1469 >        StopTimer;
1470 >        StartTimer;
1471 >      end
1472 >      else
1473 >        Enabled := true;
1474 >    end
1475      else
1476      {$IFEND}
1477        FDataSet.RefreshParams;
# Line 5085 | Line 5098 | end;
5098   function TIBDataSetUpdateObject.GetRowsAffected(
5099    var SelectCount, InsertCount, UpdateCount, DeleteCount: integer): boolean;
5100   begin
5101 +  Result := true;
5102    SelectCount := 0;
5103    InsertCount := 0;
5104    UpdateCount := 0;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines