Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Can a class see what it's instantiated as?
Message
From
09/10/2015 16:09:38
 
 
To
09/10/2015 08:49:52
General information
Forum:
Visual FoxPro
Category:
Classes - VCX
Environment versions
Visual FoxPro:
VFP 9 SP2
OS:
Windows XP SP2
Network:
Windows 2008 Server
Database:
MS SQL Server
Application:
Desktop
Miscellaneous
Thread ID:
01625748
Message ID:
01625788
Views:
65
>I have a moment of brain shortage, right now I can't see the forest for all the trees. Is it possible from within an object to know what is the name it's instantiated as? Given this code
>
>
>loCountries = NewObject('SqlTable','SQL.vcx')
>
>In this case I want the class SqlTable to understand that it's instantiated as loCountries. I am building a rather complicated generic class to work with SQL tables. My idea is that if I call the object for instance loCountries, my class can be smart enough to know that I want it to connect to the SQL table called Countries.

I'd be inclined to pass in parameter(s):
loCountries = NewObject('SqlTable','SQL.vcx', 'Countries', MyParam2, ... )
Or has already been suggested, set an object property after it's created.

In your sample code you may be working on a concrete method using Countries, so you want to use loCountries. But if in fact it's generic and you are generating the variable name, then there probably already is a parameter or property used to generate the variable name, so you could just pass that to the SQL object.

Something like that is likely to be simpler to maintain and more robust than deriving the variable name.
Regards. Al

"Violence is the last refuge of the incompetent." -- Isaac Asimov
"Never let your sense of morals prevent you from doing what is right." -- Isaac Asimov

Neither a despot, nor a doormat, be

Every app wants to be a database app when it grows up
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform