I want to share my experience playing with 10.3 release and Xojo, using the class way in client/server mode.
First of all, thank you to Ivan Smahin to speed up a lot the opening of the database in class way (4 to 6 x faster).
But it seems to me that this change bring some problem when the connexion is lost and I must recreate the database instance.
When my app start, I create a new instance of the database and next open it.
During the creation of this new instance, some fields are created as method field
// Normal field
fld1 = new VString("FldPeriode", 6)
// method field = "LEFT(FldPeriode, 4)"
fld2 = new VString("FldYear", 4, "LEFT(" + fld1.Name + ",4)")
All is working well during this first instantiation.
But if the connexion is unexpectedly lost some times later (network failure, server failure, server restart, ...), I have to free the opened VCursors, database and current connexion and then create a new connexion, open it, create a new instance of the database and finally open my database.
During this second database instantiation, after the new instance creation of the VField fld1, I cannot ask anymore fld1.name because fld1.name is empty at this moment. Thus for the method field fld2, I cannot define the method as "LEFT(" + fld1.Name + ",4)". I have to explicitly define it as "LEFT(FldPeriode, 4)".
And upon my tests, I cannot ask any property (maxLength for example) of a new instanced field before I open the database (done in the next step).
This is an important (it seems to me) change between 10.3 release and previous.
However, this difference in behaviour for the first and subsequent instantiation seems a little strange to me. But perhaps I made a mistake or a bad assumption...
Ivan can you confirm it's intentional or is it a bug I have to report in Mantis ?