From: <jfu...@us...> - 2006-10-16 19:44:00
|
Revision: 10982 http://svn.sourceforge.net/jvcl/?rev=10982&view=rev Author: jfudickar Date: 2006-10-16 12:43:52 -0700 (Mon, 16 Oct 2006) Log Message: ----------- Improved threaded refresh handling Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2006-10-16 19:36:28 UTC (rev 10981) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2006-10-16 19:43:52 UTC (rev 10982) @@ -789,6 +789,7 @@ FExecuteThread.ConnectedDatasetThreadHandler := self; FExecuteThread.ThreadDialog := ThreadDialog; FEnhancedOptions := CreateEnhancedOptions; + FCurrentOperation := tdoNothing; end; destructor TJvBaseDatasetThreadHandler.Destroy; @@ -1140,6 +1141,8 @@ var ShowModal :Boolean; begin + if FCurrentOperation <> tdoNothing then + Exit; FCurrentOperation := tdoLast; if not ThreadOptions.LastInThread or ThreadIsActive or (csDesigning in ComponentState) then begin @@ -1163,6 +1166,8 @@ procedure TJvBaseDatasetThreadHandler.InternalRefresh; begin + if FCurrentOperation <> tdoNothing then + Exit; FCurrentOperation := tdoRefresh; if not ThreadOptions.RefreshInThread or not IThreadedDatasetInterface.IsThreadAllowed or ThreadIsActive or (csDesigning in ComponentState) then @@ -1213,6 +1218,9 @@ end else begin + if (FCurrentOperation <> tdoNothing) and + (CurrentOperation <> tdoRefresh) then + Exit; if CurrentOperation <> tdoRefresh then FCurrentOperation := tdoOpen; if not ThreadOptions.OpenInThread or ThreadIsActive or (csDesigning in ComponentState) then This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2006-12-19 22:30:03
|
Revision: 11099 http://svn.sourceforge.net/jvcl/?rev=11099&view=rev Author: jfudickar Date: 2006-12-19 14:29:57 -0800 (Tue, 19 Dec 2006) Log Message: ----------- Removed Milliseconds from output Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2006-12-19 22:27:14 UTC (rev 11098) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2006-12-19 22:29:57 UTC (rev 11099) @@ -514,8 +514,8 @@ ITmpControl.ControlSetCaption(IntToStr(CurrentRow)); if Supports(FTimeStaticText, IJvDynControl, ITmpControl) then ITmpControl.ControlSetCaption( - FormatDateTime('hh:nn:ss.zzz', CurrentOpenDuration) + ' / ' + - FormatDateTime('hh:nn:ss.zzz', CurrentFetchDuration)); + FormatDateTime('hh:nn:ss', CurrentOpenDuration) + ' / ' + + FormatDateTime('hh:nn:ss', CurrentFetchDuration)); end else begin This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2007-11-17 20:28:07
|
Revision: 11578 http://jvcl.svn.sourceforge.net/jvcl/?rev=11578&view=rev Author: jfudickar Date: 2007-11-17 12:28:04 -0800 (Sat, 17 Nov 2007) Log Message: ----------- Updated Thread Handling Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-11-15 19:57:10 UTC (rev 11577) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-11-17 20:28:04 UTC (rev 11578) @@ -898,6 +898,7 @@ end; function TJvBaseDatasetThreadHandler.CheckContinueRecordFetch: TJvThreadedDatasetContinueCheckResult; +var CheckCount : Integer; begin Result := tdccrContinue; FCurrentRow := Dataset.RecordCount; @@ -914,8 +915,14 @@ Exit; end; end; - if (EnhancedOptions.FetchRowsCheck > 0) and IntRowCheckEnabled then - if CurrentRow >= FLastRowChecked + EnhancedOptions.FetchRowsCheck then + if (fLastRowChecked = 0) and + (EnhancedOptions.FetchRowsFirst > 0) then + CheckCount := EnhancedOptions.FetchRowsFirst + else + CheckCount := EnhancedOptions.FetchRowsCheck; + + if (CheckCount > 0) and IntRowCheckEnabled and + (CurrentRow >= FLastRowChecked + CheckCount) then begin IntCurrentFetchDuration := IntCurrentFetchDuration + Now - IntCurrentOperationStart; IntCurrentAction := tdaNothing; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2007-11-22 23:04:14
|
Revision: 11588 http://jvcl.svn.sourceforge.net/jvcl/?rev=11588&view=rev Author: jfudickar Date: 2007-11-22 15:04:12 -0800 (Thu, 22 Nov 2007) Log Message: ----------- Fixed Calculation of CurrentFetchDuration Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-11-21 19:17:53 UTC (rev 11587) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-11-22 23:04:12 UTC (rev 11588) @@ -1032,7 +1032,7 @@ tdaFetch: Result := FIntCurrentFetchDuration + (Now - IntCurrentOperationStart); else - Result := 0; + Result := FIntCurrentFetchDuration; end; end; @@ -1114,7 +1114,7 @@ IntCurrentOpenDuration := Now - IntCurrentOperationStart; IntCurrentOperationStart := Now; DatasetFetchAllRecords := FIntDatasetFetchAllRecords; - IntCurrentFetchDuration := 0; +// IntCurrentFetchDuration := 0; if IntCurrentAction <> tdaCancel then begin IntCurrentAction := tdaFetch; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2007-12-12 20:34:07
|
Revision: 11599 http://jvcl.svn.sourceforge.net/jvcl/?rev=11599&view=rev Author: jfudickar Date: 2007-12-12 12:34:04 -0800 (Wed, 12 Dec 2007) Log Message: ----------- Fixed Cancel Behaviour Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-12-12 20:18:16 UTC (rev 11598) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-12-12 20:34:04 UTC (rev 11599) @@ -852,14 +852,18 @@ procedure TJvBaseDatasetThreadHandler.BreakExecution; begin IntCurrentAction := tdaCancel; - if (FetchMode = tdfmFetch) and (EnhancedOptions.AllowedContinueRecordFetchOptions.Pause or + if (FetchMode = tdfmFetch) and + (EnhancedOptions.AllowedContinueRecordFetchOptions.Pause or EnhancedOptions.AllowedContinueRecordFetchOptions.Cancel) then if EnhancedOptions.AllowedContinueRecordFetchOptions.Pause then FetchMode := tdfmBreak else FetchMode := tdfmStop else + begin IThreadedDatasetInterface.BreakExecution; + FetchMode := tdfmStop; + end; IntRowCheckEnabled := False; end; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2007-12-18 22:35:26
|
Revision: 11633 http://jvcl.svn.sourceforge.net/jvcl/?rev=11633&view=rev Author: jfudickar Date: 2007-12-18 14:35:25 -0800 (Tue, 18 Dec 2007) Log Message: ----------- Improved Exception Handling Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-12-18 22:34:35 UTC (rev 11632) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2007-12-18 22:35:25 UTC (rev 11633) @@ -1292,9 +1292,12 @@ IntCurrentOperation := tdoOpen; if not ThreadOptions.OpenInThread or ThreadIsActive or (csDesigning in ComponentState) then begin - IThreadedDatasetInterface.DoInheritedSetActive(Value); - if IntCurrentOperation <> tdoRefresh then - IntCurrentOperation := tdoNothing; + try + IThreadedDatasetInterface.DoInheritedSetActive(Value); + finally + if IntCurrentOperation <> tdoRefresh then + IntCurrentOperation := tdoNothing; + end; end else ExecuteThread.ExecuteWithDialog(nil); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2008-03-31 23:42:56
|
Revision: 11776 http://jvcl.svn.sourceforge.net/jvcl/?rev=11776&view=rev Author: jfudickar Date: 2008-03-31 16:42:52 -0700 (Mon, 31 Mar 2008) Log Message: ----------- Reduced TJvBaseDatasetThreadHandler.ExecuteThreadSynchronize Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2008-03-31 21:27:06 UTC (rev 11775) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2008-03-31 23:42:52 UTC (rev 11776) @@ -1033,18 +1033,7 @@ procedure TJvBaseDatasetThreadHandler.ExecuteThreadSynchronize(Method: TThreadMethod); begin - - if ExecuteThreadIsActive then - begin - ExecuteThread.DisableDialogShowDelay; - try - ExecuteThread.Synchronize(Method); - finally - ExecuteThread.EnableDialogShowDelay; - end; - end - else - Method; + ExecuteThread.Synchronize(Method); end; function TJvBaseDatasetThreadHandler.GetCurrentAction: TJvThreadedDatasetAction; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <jfu...@us...> - 2008-06-26 00:55:34
|
Revision: 11817 http://jvcl.svn.sourceforge.net/jvcl/?rev=11817&view=rev Author: jfudickar Date: 2008-06-25 17:55:25 -0700 (Wed, 25 Jun 2008) Log Message: ----------- Fixed Thread Refresh Handling Modified Paths: -------------- trunk/jvcl/run/JvBaseDBThreadedDataset.pas Modified: trunk/jvcl/run/JvBaseDBThreadedDataset.pas =================================================================== --- trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2008-06-22 20:37:12 UTC (rev 11816) +++ trunk/jvcl/run/JvBaseDBThreadedDataset.pas 2008-06-26 00:55:25 UTC (rev 11817) @@ -291,7 +291,7 @@ FIntRowCheckEnabled: Boolean; FIThreadedDatasetInterface: IJvThreadedDatasetInterface; FLastRowChecked: Integer; - FMoveToRecordAfterOpen: Longint; + FAfterOpenRecordPosition: Longint; FOnThreadException: TJvThreadedDatasetThreadExceptionEvent; FOperationWasHandledInThread: Boolean; FSynchMessageDlgBtn: Word; @@ -359,6 +359,7 @@ procedure IntSynchAfterRefresh; procedure IntSynchBeforeOpen; procedure IntSynchBeforeRefresh; + procedure MoveToRecordPositionAfterOpen; procedure SetError(const Msg: string = ''; Excep: Exception = nil); function SupportsBreakExecution: Boolean; virtual; procedure ThreadExecute(Sender: TObject; Params: Pointer); @@ -867,7 +868,7 @@ begin if (IntCurrentOperation <> tdoRefresh) then begin - FMoveToRecordAfterOpen := -1; + FAfterOpenRecordPosition := -1; HandleBeforeOpenRefresh; end; ExecuteThreadSynchronize(IntSynchBeforeOpen); @@ -876,9 +877,9 @@ procedure TJvBaseDatasetThreadHandler.BeforeRefresh; begin if EnhancedOptions.RefreshLastPosition then - FMoveToRecordAfterOpen := Dataset.RecNo + FAfterOpenRecordPosition := Dataset.RecNo else - FMoveToRecordAfterOpen := -1; + FAfterOpenRecordPosition := -1; HandleBeforeOpenRefresh; ExecuteThreadSynchronize(IntSynchBeforeRefresh); end; @@ -1018,8 +1019,9 @@ end else begin - Dataset.Close; - IThreadedDatasetInterface.DoInternalOpen; + if Dataset.Active then + ExecuteThreadSynchronize(Dataset.Close); + IThreadedDatasetInterface.DoInheritedSetActive(True); end; finally HandleAfterOpenRefreshThread; @@ -1160,23 +1162,20 @@ IThreadedDatasetInterface.DoInheritedInternalLast else if (EnhancedOptions.FetchRowsFirst > Dataset.RecordCount) or - (FMoveToRecordAfterOpen > Dataset.RecordCount) then - if FMoveToRecordAfterOpen > EnhancedOptions.FetchRowsFirst then - Dataset.MoveBy(FMoveToRecordAfterOpen - 1) + (FAfterOpenRecordPosition > Dataset.RecordCount) then + if FAfterOpenRecordPosition > EnhancedOptions.FetchRowsFirst then + Dataset.MoveBy(FAfterOpenRecordPosition - 1) else Dataset.MoveBy(EnhancedOptions.FetchRowsFirst - 1); end; end; Dataset.Filtered := FIntDatasetWasFiltered; - if Dataset.Active and (IntCurrentAction <> tdaCancel) then - if FMoveToRecordAfterOpen > 0 then - MoveTo(FMoveToRecordAfterOpen) - else - Dataset.First; finally ExecuteThreadSynchronize(Dataset.EnableControls); IntCurrentAction := tdaNothing; end; + if Dataset.Active and (IntCurrentAction <> tdaCancel) then + ExecuteThreadSynchronize(MoveToRecordPositionAfterOpen); end; procedure TJvBaseDatasetThreadHandler.HandleAfterOpenRefreshThread; @@ -1263,7 +1262,14 @@ if not ThreadOptions.RefreshInThread or not IThreadedDatasetInterface.IsThreadAllowed or ThreadIsActive or (csDesigning in ComponentState) then begin - IThreadedDatasetInterface.DoInheritedInternalRefresh; + if not EnhancedOptions.RefreshAsOpenClose then + IThreadedDatasetInterface.DoInheritedInternalRefresh + else + begin + if Dataset.Active then + SetActive(False); + SetActive(True); + end; IntCurrentOperation := tdoNothing; end else @@ -1318,7 +1324,10 @@ Exit; if IntCurrentOperation <> tdoRefresh then IntCurrentOperation := tdoOpen; - if not ThreadOptions.OpenInThread or ThreadIsActive or (csDesigning in ComponentState) then + if not ( (ThreadOptions.OpenInThread and (IntCurrentOperation = tdoOpen)) + or (ThreadOptions.RefreshInThread and (IntCurrentOperation = tdoRefresh)) + ) + or ThreadIsActive or (csDesigning in ComponentState) then begin try IThreadedDatasetInterface.DoInheritedSetActive(Value); @@ -1497,6 +1506,14 @@ Result := not ExecuteThread.Terminated; end; +procedure TJvBaseDatasetThreadHandler.MoveToRecordPositionAfterOpen; +begin + if FAfterOpenRecordPosition > 0 then + MoveTo(FAfterOpenRecordPosition) + else + Dataset.First; +end; + //=== { TJvBaseThreadedDatasetAllowedContinueRecordFetchOptions } ============ constructor TJvBaseThreadedDatasetAllowedContinueRecordFetchOptions.Create; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |