David,
I wrote a complete collection of set operation routines
here :
https://www.dropbox.com/s/075k0ap7afervs8/Sets_Component_v1.0.zip?dl=0
Distributed as shareware $15 ($35 for source & a suite testing
routines), it is a compiled/built component created in v13. If you like
it you are free to reuse/distribute etc.
it includes a method to test if the set exists, and does not require
error handlers.
On Sat, 15 Jul 2017 10:10:21 +1000, David Adams via 4D_Tech wrote:
> Chip was asking about testing if a set exists or not and put in a feature
> request related to this subject. (I voted for it.)
>
> I was just consolidating some old code and ran across something that I
> wrote some time back called Set_Exists. No clue. It seems to work, but I
> can't say why.
>
> C_BOOLEAN($0;$exists)
> C_TEXT($1;$set_name)
>
> $set_name:=$1
>
> Error:=0
>
> ErrorHandler_Install ("ErrorHandler_SuppressError")
>
> C_BOOLEAN($is_in_set)
> $is_in_set:=Is in set($set_name)
>
> ErrorHandler_InstallPrevious
>
> $exists:=Error=0 // You could test for error 39 to be a bit more specific.
>
> $0:=$exists
>
> Here's a little routine I wrote to try it out:
>
> ALL RECORDS([Cart])
> CREATE SET([Cart];"Cart_All")
> REDUCE SELECTION([Cart];0)
> UNLOAD RECORD([Cart])
>
> $this_returns_true_correctly:=Set_Exists ("Cart_All")
>
> $this_returns_false_correctly:=Set_Exists ("Foo")
>
> Obviously, you would need to use a table name that exists in your structure
> to check this out.
>
> Can anyone confirm/deny that this code is reliable? Seriously, I have no
> memory of writing this...Not that unusual for me, frankly...I tend to punch
> out reams of code/writing and don't always look back.
> **********************************************************************
> 4D Internet Users Group (4D iNUG)
> FAQ: http://lists.4d.com/faqnug.html
> Archive: http://lists.4d.com/archives.html
> Options: http://lists.4d.com/mailman/options/4d_tech
> Unsub: mailto:[email protected]
> **********************************************************************
---------------
Gas is for washing parts
Alcohol is for drinkin'
Nitromethane is for racing
**********************************************************************
4D Internet Users Group (4D iNUG)
FAQ: http://lists.4d.com/faqnug.html
Archive: http://lists.4d.com/archives.html
Options: http://lists.4d.com/mailman/options/4d_tech
Unsub: mailto:[email protected]
**********************************************************************