1

I have an application consisting of about 5 executable programs that connect to a Nexus DB Server.

Auto updating each client from our website can leave some clients not upgraded and this causes problems if the upgrade changes the DB schema.

I looked into having DataSnap stream updates from it to the clients but this would be a ton of legwork if I'm not using Datasnap for data access at all.

Are there any components are libraries to have the clients check the server's version of my application and auto-update if needed from the server instead of our website?

This way the user would upgrade the server from my website and when clients re-connected be prompted or even forced to update with the server's files.

Richard Holland
  • 2,663
  • 2
  • 21
  • 35
  • 1
    Maybe I didn't understand your question, but why don't have a field on your database where to put the version number, and when the client connect it verify that number and if it different than it's number to start the upgrade process? – RBA Jan 31 '12 at 21:03
  • possible duplicate of http://stackoverflow.com/questions/277514/delphi-how-do-you-auto-update-your-applications – mjn Feb 01 '12 at 09:30
  • I need more than just 'auto update' - I'm asking for distributed updates or something along those lines. – Richard Holland Feb 02 '12 at 02:25

2 Answers2

4

TWebupdate by TMS should work.

pritaeas
  • 2,073
  • 5
  • 34
  • 51
John Easley
  • 1,551
  • 1
  • 13
  • 23
4

In a similar situation I use a version table in the database that adds a record with the new major.minor version number and a timestamp when there's a database change.

When we change the database we change the minor version number of each application. When each application fires up it checks that the highest version table number matches. If it doesn't, it tells the user to either upgrade the application (if the version table number is higher) or the database (if it's lower).

SourceMaid
  • 473
  • 3
  • 6