In VFP, we typically configured the environment with SET commands at the beginning of the application and they maintained their values until the application was exited unless the data session changed.


1. Where is the recommended place for SET commands to be issued in Lianja?

2. Does Lianja have the concept of multiple data sessions? If so, what causes the system to move between data sessions or instigate a new data session?


in a desktop app, the SET commands would come in the App INIT delegate.

When you push the elipse on the row of the delegate the procedure name gets created for you.

re: DataSessions

No: there is only one.

And only one database is open at a given time.

If you need data from a different Lianja database (including VT’s the access remote databases, e.g., MSSQL or Lianja for that matter), using <database>!<table> in the Select or USE statement. That will leave the current database in place.

In monolithic apps it wasn’t unusual (but wasn’t usual either) to have more than one database. Because of two factors, this is not needed in Lianja:

1) Lianja apps are made to be small, functional apps the encapsulate a sub-set of functionality.

2) Processes that run as a result of other data changes can be spun off on their own OS process (using the SPAWN command) or, better yet from the perspective scalability, set off to web services (Lianja web services are insanely easy to create).




For development purposes you can create a config.db in the .\Lianja\conf\ directory and put your SET commands there.

It is not per APP only.



Categories SET


If I do a select from a large table in the console and would like to kill it, can I use set escape?
No, the query will need to complete. It is executed in the calling thread and control does not return to the main event loop until it has completed.

Categories SET


Many of the SET commands work this way – you omit anything after the ‘to’ to set it back to the default.

set filter to



Categories SET