Danger Fourpence wrote: » Hey all I have a very small data entry desktop application that I had created just to speed up some daily tasks. It works very well and other people in the company have started to use it. Up to now it's never been required for anything other than working on a stand alone device. However, we now need to network this somehow so that one user can modify another user's entries. It is built on SQL Lite meaning that numerous users can't commit to the DB at once. I've been told a web application would be the resolution, but unfortunately we won't always have internet access when using the application. Can anyone suggest a potential solution? I didn't take scale into a factor when I thought only I would be using it.
Danger Fourpence wrote: » one user can modify another user's entries.
SilverSideUp wrote: » Herein lies your problem. This is taken from the SQLite docs. The best solution would be to re-write your app using MYSQL instead of SQLite. Otherwise, it will be a bodge.
counterpointaud wrote: » Yeah but it my be enough for OPs needs to just restrict the app to one logged in user at a time
Danger Fourpence wrote: » resolution, but unfortunately we won't always have internet access when using the application. .
Danger Fourpence wrote: » but unfortunately we won't always have internet access when using the application
Danger Fourpence wrote: » However, we now need to network this somehow so that one user can modify another user's entries. It is built on SQL Lite meaning that numerous users can't commit to the DB at once. I've been told a web application would be the resolution, but unfortunately we won't always have internet access when using the application.
Can anyone suggest a potential solution? I didn't take scale into a factor when I thought only I would be using it.
Jim2007 wrote: » Have you got a budget?
counterpointaud wrote: » Are you talking about one user modifying another's entries after the fact, or at the same time (e.g. like two people editing the same spreadsheet at the same time on Google Sheets)? What is current app written in, and what platform does it run on?
SilverSideUp wrote: » "SQLite will work over a network filesystem, but because of the latency associated with most network filesystems, performance will not be great. Also, file locking logic is buggy in many network filesystem implementations (on both Unix and Windows). If file locking does not work correctly, two or more clients might try to modify the same part of the same database at the same time, resulting in corruption. Because this problem results from bugs in the underlying filesystem implementation, there is nothing SQLite can do to prevent it." Herein lies your problem. This is taken from the SQLite docs. The best solution would be to re-write your app using MYSQL instead of SQLite. Otherwise, it will be a bodge.
sf80 wrote: » Do they need write access when they are off line? Could you given them an offline viewer and a Web application for editing?
counterpointaud wrote: » This is probably the bigger complicating factor IMO If you only allow one logged in user at a time (or implement locking at the application layer), but require network access, it's not so hard. If you allow offline editing which updates when you eventually get online it gets pretty complicated (which update wins? latest timestamp? do we trust time from users machine? etc etc) can of worms As previous poster suggested, it may be worth migrating to a proper database if you think concurrent multiple users is definitely needed. Otherwise I tend to be a fan of the simplest thing that gets the job done.
AndrewJRenko wrote: » Do you really need to build your own app? Could you do something in Google Forms or Sheets, or even SurveyMonkey or Typeform or whatever? Is the data suitable for cloud storage, or is it very sensitive? Do you need to integrate with other existing systems or data to validate your data entry?
Danger Fourpence wrote: » No. Sometimes I will be on a dark site.
Danger Fourpence wrote: » Little to none. Verging closer to none.