Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Updating App in Multiple Locations

Status
Not open for further replies.

sangred

Programmer
Apr 4, 2002
11
0
0
US
I work for a payroll company and our clients use a payroll application written in VFP. We have to distribute updates to our clients a lot and I am looking for a better way to update our clients that have our software on their network.

The data files are on their network and the exe we run off their local drive through use of an ini file that points to the data drive. When they download our update they run and have to tell it to install to the proper location like f:\payroll. Then they have to run a bat file in our payroll directory that copies the new exe and ini file down to their local c:\payroll directory.

I would like if possible to emliminate these steps. It would be nice if i could scan all their drives for the existence of some of our files and install the data files on the server and the exe on the local workstations to update them? We are using VFP 7.0 and Install shield Express.

I would appreciate any information anyone can provide

Ryan



 
Ryan,

I am curious: What stops you from placing your EXE into F:\Payroll directory on the network HDD? It would be much easier for you and your customers to update everything - EXE and data - with one shot if it all was in one location.

I do exactly that: EXE and data in one directory on a network HDD. And I wrote the program that updates DBFs and EXE automatically, with minimal user interface/interference.

Regards,

Ilya
 
We place the exe on the local computer instead of the network because we noticed quite a difference in the performance of our application. It runs much quicker if we run the exe locally and access the data files on the server.

Ryan
 
Well, one way to do that is to make a Directory on the server or shared folder call it (eg, AppUpgrade) or something like that.

In there Place:
App.ex_ (You New Application)
UpdateApp.exe (Will do the update, simply renames the exe and copy the app.ex_ to your app.exe)
etc..

-------------

Now, when the User loads his application on the Local HDD, having check for updates (maybe Once a day?) and check the version. Before the application really launch, Have the application do the necesscary updates by quiting and launching the UpdateApp.exe

Ofcource, you may tell the user there is an update, and you must update within 1 days or something like that.

--------------
I haven't tested it, but I just thought about the algorithm, and it sounds "do-able"...

Please let me know if this helped you :)

Tekno
Wireless Toyz
Ypsilanti, Michigan
 
Another (untested) option ...

Only load the Primary Application EXE on the network drive.

Create a batch file for the local drive which contains 2 EXEs. The function of EXE#1 is to check the network location to see if an upgrade has taken place. If so, it will then download a copy of the Primary Application EXE, writing over the top of the present one and exit. After which the batch file will begin execution of the second EXE which will be the Primary Application EXE.

There are some details to be addressed here but I think this could work very easily.

Don
dond@csrinc.com

 
I would go with the two step exe approach. The first exe is a loader which checks for a newer version at spme specified location on the network.

A problem that no one has mentioned with the 'just run it of an exe on the network' solution besides performance is that you need to kick everyone off the application before you can do an update.

My loader code uses the version number of the exe for comparison, rather than relying on datetime stamps. It also has the following logic.

If only the revision number is changed copy the new exe only.

If the minor version number is changed copy the exe and new data files. Usefull for DBC changes, if you have the users use a local dbc.

If the major version is changed, do not copy anything, send a message to the user that this is a major update and will require an install. Used when a new ocx or other major change makes it neccessary to run an install rather than just a copy.

 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top