madorin / fibplus

FibPlus Library for Delphi and C++Builder. Data access components for Firebird & Interbase.
165 stars 57 forks source link

Attempting to Post master_DataSet from detail_DataSet.OnBeforePost event, causes stack overflow and unexpected program termination. #8

Open walxo opened 7 years ago

walxo commented 7 years ago

Sergey Buzadzhy's decision of this bug (Ticket # 13052) http://www.devrace.com/en/support/tickets/index.php?login=yes&ID=13052

In Unit FIBDataSet

change method TFIBDataLink.CheckBrowseMode to

procedure TFIBDataLink.CheckBrowseMode; begin end;

madorin commented 7 years ago

Hi Walxo, I don't have access there, a closed customer area. As I remember I patched something related to this, not exactly the way you described. Have you tested this issue using current build? If it is still reproducible, a test case will be welcome.

walxo commented 7 years ago

Hi Madorin, No, actually i haven' tested your build. Will do and will share the result. :)

walxo commented 7 years ago

Hi Dorin, Noop, the current build doesn't work in this sitation. The procedure should be:

FIBDataSet.pas ->

procedure TFIBDataLink.CheckBrowseMode; begin end;

http://vilex.cc/fibplus_test/Test3.zip

madorin commented 7 years ago

Hello,

Try FIBDataSet unit from here: https://mega.nz/#!dAx2kLDC!Hs82uPAfve5bfsECHVxeq3J0k9ZfrgfEmP1Y0gwjKgg

Cleaning TFIBDataLink.CheckBrowseMode it's not the best idea.

walxo commented 7 years ago

This procedure and this bug did appear in fibplus ver. 7.5 for the first time. Prior versions haven't a such problem. The desition i shered here is by Sergey Buzadzhy - fibplus autor and developer :) Anyway i will make the test again. :) Once again i would like to thank you for your efforts to keep fibplus alive!

walxo commented 7 years ago

hi, FIBDataSet from the link - works :)

madorin commented 7 years ago

ok, i'll apply that patch. Anyway, a good idea is to post master on detail.OnBeforeInsert not on detail.OnBeforePost. Master.Post may not always succeed.