Assert(FNotificators.Count = 0);

Discussion of open issues, suggestions and bugs regarding SDAC (SQL Server Data Access Components) for Delphi, C++Builder, Lazarus (and FPC)
Post Reply
LHSoft
Posts: 104
Joined: Sat 18 Aug 2012 08:33

Assert(FNotificators.Count = 0);

Post by LHSoft » Sun 18 Aug 2013 10:04

Hello,

my changenotification works well, but if using Notification on more than one form there is an error in line 3381 of msaccess.pas: "assertation failed" when closing application and forms are closed before.
I set the dataset.ChangeNotification on form.create before opening the dataset. Is there any work I have to do when closing the dataset to avoid the exception?

best regards
Hans

LHSoft
Posts: 104
Joined: Sat 18 Aug 2012 08:33

Re: Assert(FNotificators.Count = 0);

Post by LHSoft » Sun 18 Aug 2013 21:47

a liitle more into details after inverstigation:

I am monitoring the connection count and the count of active querys/tables in form of 1/2 wich means "1 active connection"/"2 active DataSets".

So, if I start App, there is one active connection "1/0". Opening the first form with a MSTable will result in "1/1. If this Table on Form1 is assigned with TMSNotification the result after opening is "2/2". Closing the Form will result in "1/0", means the additional connection and query of Notification is closed again so as the MSTable on Form1 too.

Same with second Form but when closing the second Form after first has been opened and closed the result is not "1/0" but "2/1", means that the additional connection and query for Notifications are not closed any more. It does not matter which form is opened first.

If both forms are closed and the result is "2/1" and I close the App, I get the error Assertion Failure in line 3381 of MSAccess.pas and the Broker objects leave in Database.

If both forms are open, then the result is "2/3" and I close the App and there is no exception and no broker object left.

For all cases: Notifications are working perfect, within the app and over network too.
The Problem is the exception when closing the app, I do not know how to avoid.

My environment:
Win7 32
Delphi XE2
SDAC 6714
Microsoft SQL Server: 10.50.4000
Microsoft SQL Server Native Client 10.0: 10.50.4000.0

AndreyZ

Re: Assert(FNotificators.Count = 0);

Post by AndreyZ » Mon 19 Aug 2013 11:07

Thank you for the information. We have fixed this problem. This fix will be included in the next SDAC build.

Post Reply