On the issue of Undo - There is only one level of undo. However, the total amount of memory allocated for undo is now much larger than in older versions. This change was made in version 7.5. The limit on records has always been 800 and the limit on memory is now 10 million bytes. Someone mentioned the idea that when the limit was reached we allowed an Undo of some of them and then asked "which ones would that be"? I don't believe this is true. If the limit is reached, undo is disabled. It is all or nothing, just like a transaction.
On the issue of doing a Not in SQL and performance - There was an issue starting in the 7.8 maintenance release and 8.0 that could slow down many uses of expressions including SQL but only in certain circumstances. There was a patch to 8.0 released to fix this problem. The 7.8 change increased the complexity of expressions allowed and with this latest patch, we believe the performance is at least as good if not better than 7.8 and earlier. If your SQL was called from inside MapBasic functions (not procedures) or if it involved subselects, you might have this issue. However, including a "Not" should have had no impact on this. Unless someone can demonstrate a case where doing a SQL with Not is slower than doing it without and then inverting the selection, it would be my recommendation to do it the right way and keep the "not". Certainly the draw time to update map and browser windows with the new selection and then to revert it would not only be annoying but would slow things down as well. Thanks to Peter and others for helping people with the syntax. As always, I hope this helps. Eric Blasenheim Software Architect MapInfo Corporation
