Wiki Home

Referential Integrity Builder


Namespace: WIN_COM_API
Renamed from Relational Integrity Builder - ?tr

Here's a bug report that was sent to vfpfeed@microsoft.com on 2/24/4:

This is a Visual FoxPro bug is about FoxPro Version (pick one): 8.0 SP1
Reproduces (pick one): always
Hardware and Software Details: Dell Laptop, WinXP Pro.

Other Development Environments? no
If 'yes' which?

Steps to Reproduce:

When you make modifications to a DBC's R.I. rules, any existing table trigger expression that includes an "OR" condition will be changed to an "AND". For example, on one of our tables, the following expression is in the delete trigger:

__ri_delete_rimytable().OR.(IIF(TYPE("g_lSkipDeleteRI")="L",g_lSkipDeleteRI,.F.))

This allows us to override the R.I. rule if needed for administrative purposes (don't worry, there's a good reason for this). But, if modifications are made to the R.I. rules via the R.I. builder, the "OR" in the above expression is changed to "AND" when the R.I. code is generated. This applies even if the R.I. rule mod has nothing to do with the table that has the "OR" trigger expression.

This is a HUGE bug as far as we're concerned. In our case, this problem prevents our customers from being able to delete any records from the affected table. It's bitten us a few times and we've looked pretty bad. Now that we know however, we should be able to avoid it.

- William Fields
( Topic last updated: 2004.04.30 10:20:53 AM )