Permanent Variables in Shared DBs and Server Variables

Hi Jim,

I see the page on Permanent Variables in the help pages, but I wanted to check on their use in shared databases.

I just discovered on the server variable help page that permanent variables are not shared. So if I create one on my copy of a database, it will be not available to others who use the database. I added to the permanent variable help page a clarification to that effect, which I copied from the server variable help page.

Are permanent variables affected by creating a New Generation of a shared database? One should know if they persist or not when deciding whether to use them in a shared database. I will add another suggested change to the help page that includes your answer to this question.

BTW, I also have needed to store information permanently that is particular to the user and would not be shared and is not affected by any PanX database changes. In that case, I have used Macintosh preferences. So each user has their own values stored in preferences. In my case, I have the person’s initials, name, and email stored in preferences, as convenience so it does not need to be re-entered from session to session. I think I decided to use preferences because I thought permanent variables can be lost if a new generation is created by another user.

Permanent variables are included in a New Generation if you check the Permanent Variables option in the New Generation dialog! Hopefully the dialog itself makes that pretty clear.

Perfect, I think that is exactly the correct solution. These values are not associated with the database, so they shouldn’t be stored with the database. And they are not associated with the server or network, so they shouldn’t be stored in server variables. Preferences are the exact right spot for this information, in fact I think even for a single user solution this would be the best solution.

Is this a true statement (from the Help Page Server Variables (Shared Variables)

“Permanent values can be used with shared databases, but they aren’t shared. Each local copy of the database has it’s own private copy of the permanent variables. There is no way that one user can find out what another user’s permanent variables contain, and no way to change what values are stored in another user’s variables.”

UPDATE: Based on testing that I just did, I would say that statement is no longer correct. I just created a permanent variable on one computer, assigned a value, then saved it with a new generation. When I opened the database on another computer, the variables and its new value were available.

Well, perhaps that should be edited slightly. It is true outside of the context of New Generations. This was probably even a worse problem in Panorama 6, where a New Generation would ALWAYS replace all permanent variables.

Now that you have pointed this out, I think the proper advice would be that permanent variables should almost never be used in a shared database. The exception might be something like a tax rate.

We cross posted, but yes, basically, I would say this statement, which I believe was brought over from the Panorama 6 documentation, was never correct. Perhaps sort of literally correct, you can’t find out what another users variables are or change them in a controlled way. But for practical purposes, permanent variables might not really be permanent from the point of view of individual users. Preferences are the way to go.