Quick update.
I have created two batch scripts to replicate the live database to a training database, and enable and disable 'Training Mode'
Replicatedb.bat - copies the SambaPOS SQL files to a new SQL Instance called SambaPOSTrain
Sambatrain.bat - changes the SQL database settings in SambaSettings.txt to SambaPOSTrain and runs SambaPOS. When you exit, the script changes SambaSettings.txt back to SambaPOS live database.
Its means now you have three icons as follows
1. SambaPOS Production (normal SambaPOS)
2. Replicate Production Database to Training Database
3. SambaPOS Training
This is easy when its all on the same machine. I haven't tried it yet with a network server, but I can't see any reason why it will not work.
This way you can train a user on an exact copy of the live database without interrupting any other users, without any impact to the Live data, and with all restrictions (User Roles) in place for that user.
Emre,
Firstly I am not a MSSQL DB expert, but I do know MYSQL, so here's my suggestion for a solution from your side.
With SQL Express, the Table Data is located in Databases/SambaData2/Schemas/dbo/Tables.
Could we create create another 'Tables' group under 'dbo' and call it 'Tables2'. Then under Local Settings in Manage have another tab for 'Training DB' with the option to replicate the data from 'Tables' to 'Tables2' (Live to Training) to update the training database with the latest live data.
Then on the login screen have a 'Training Mode Toggle' that when a user selects training and logs in it uses the 'Tables2' data.
When finished training, Log out and log back in for the live system.
Could that work? Because we are not changing databases like my example above, it should be seamless, fast and almost fool proof.
It allows for a single terminal to be in training mode while the other terminals are trading, and it allows testing of configuration changes before you make the changes to the live system.