Hi Lee,
This is a very common setup and works for TPS files, or SQL databases or however you split your data. The basic idea goes something like this;
a) create and set a session value to determine the name of the data set to use. Maybe this is on the login screen, maybe they select it on a Memory form, maybe it's "tied" to the user himself as he logs in (ie perhaps stored in your User table) or whatever.
b) In the dict all the tables need a variable for their Full Pathname. (Usually I declare the globals in the dict at the same time.) VERY IMPORTANT that these variables are THREADed, as indeed are the files.
b) Create a small, normal, Clarion source procedure which sets all the "full pathnames" based on the Session variable. For example
CustomerName = p_web.GetSessionValue('DataFolder') & '\Customers.Tps'
c) Call this source procedure from the WebHandler procedure, ProcessLink method, before the parent call.
cheers
Bruce