Hi,

I wonder whether it is because the instances change the schema of the database or because they do it simultaneously ? Maybe if you implement a simple locking mechanism it would work ?.. The simplest way, which I never tried in Rev, but many times in Perl when programming multiuser shared flat file based solutions is using a semaphore file.

When an instance of app needs to write data to a shared flat file it:
1) checks if semaphore file (an empty file with known name, e.g anything like "busy.sem", "busy") is present 2) if it is present it waits and returns to 1) in a few milliseconds otherwise it
3) creates the semaphore file and writes data into the shared file
4) then deletes the semaphore

All the best!
Viktoras

Dave wrote:
Hi,

The problem with my Application is that whole Tables can be renamed or deleted. Just tried running two apps at the same time accessing one database and it instantly crashed and the database is in pieces!

All the Best
Dave

On 14 Feb 2008, at 13:30, viktoras didziulis wrote:

Hi Dave,

in one of my applications I use shell to communicate with sqlite for data .import and revolution's sqlite to query and modify the same database. It was never corrupted... Maybe just because .importing and modification are sequential and do not attempt to modify the same database in the same time.

I am frequently using an instance of commandline sqlite and an instance of sqlitespy for some database tests - it possibly can corrupt the database, but so far this has never happened.

Accessing the same sqlite database should not make any big troubles unless both sqlite instances modify the database simultaneously. In this case you may try implementing some sort of locking mechanism. But then the solution with file would be simpler.

I did a test with a very very simple sqlite app - it did not corrupt the database even if many instances of it were running... So you can read, insert or delete a record in a table with one instance and read it with another and vice versa... But I guess there are scenarios when the database can get corrupt.

The zipped folder with both the compiled app (for Windows) and the source can be downloaded from:
http://ekoinf.net/soft/SQLiteTest.zip

Best wishes
Viktoras

_______________________________________________
use-revolution mailing list
[email protected]
Please visit this url to subscribe, unsubscribe and manage your subscription 
preferences:
http://lists.runrev.com/mailman/listinfo/use-revolution

Reply via email to