Step 1 Step 2 Step 3 Step 4

Step 5. Customizing master-detail mechanism.

FIBPlus also allows setting some peculiarities of master-detail mechanism work. As you remember in particular in our example we have opened the detail-dataset (pFIBDataSet2) manually. It is simple if we deal with a simple link, but if we use several master-detail links or longer links (master-detail-subdetail), manual opening of all queries can cause an error. You must always open a detail query after the main one. For avoiding unnecessary coding TpFIBDataSet contains a special DetailOptions property:

Figure 15.

If setting the dcForceOpen key we can be completely sure that the detail-query will be automatically open after opening the master-query. Now we can delete the pFIBDataSet2.Open string form our program. Whatever the complexity of master-detail links is, all the queries will be open in the necessary order.

The second important option is the dcWaitEndMasterScroll key. Imagine that a user is navigating on DBGrid1 trying to find a necessary department. With each his movement when the current record in DBGrid1 changes, pFIBDataSet2 automatically reopens the query. It is obvious that navigation on the master-table will cause a number of rather complex queries, which will considerably increase the net-traffic. In practice we needed to reopen the detail-query only once when the user has finally found the department in DBGrid1. FIBPlus helps to avoid redundant queries. If the dcWaitEndMasterScroll key is added to DetailConditions, the detail-query will reopen only after some interval (the interval value can be regulated by setting values of WaitEndMasterInterval).

Thus when the user simply navigates on DBGrid1, the change of the current record activates the timer of the detail-query. If during the interval the user has time to pass on to another record, the timer will be restarted. This will happen until the user stops on the necessary record. The detail query reopens only after this and that means that pFIBDataSet2 executes only one query instead of a series of them.


Now you know how FIBPlus master-detail links work, how to connect to the database, execute a select query and generate modifying ones, work with data in the context of two transactions and link master and detail datasets. Though the described approach is very simple we recommend you to study the examples thoroughly.

Step 1 Step 2 Step 3 Step 4

Preview text: Devrace FIBPlus: Peculiarities of master-detail mechanism in the course of work with InterBase. Step 5.
Prices in Euro:

235 (1 copy)
1250 (unlimited)

Volume discounts are available...


Our 911 dispatch center needed a program to monitor the status of equipment used in emergency situations. If one dispatcher modified the status of a piece of equipment, all the other dispatchers needed to see this change immediately. The most elegant way to implement this was by using Firebird Events to asynchronously notify all the users whenever a pertinent change had occurred at the database server. After failing to implement this myself using the Firebird API, I bought a copy of FIBPlus. I dropped a Database, EventAlert and ErrorHandler control into a C++ Builder DataModule and within minutes I had all the functionality I needed. I was able to complete the project quickly and the users are thrilled with the results because I gave them more features than they originally asked for. >>

Darryl Caillouet Programmer City of Little Rock
Download full versions and updates in your Personal Area