You have a primary location with a VFP application using MSSQL Server as backend? You want to use that same application on a second site?
Then one easy way is terminal server. You need a decent server able to host the needed number of user sessions (dimension RAM and CPU cores with number of users) and cals, but then don't need any secondary SQL Server and the vfp app also is not installed in the second site at all, the users there only get a rdp file.
The other way would be setting up both sites similarly and let databases sync each other using MSSQL replication.
In both scenarios there is no complicated path through a remote MSSQL using a local VFP app, this is not how you add sites to use the same vfp application.
Replication has a big advantage in my eyes, as you can keep syncing at minimum, not every site needs all data. You have stem data needed everywhere, but local store inventory is local only, for example.
Most companies rather choose the terminal server way, though its operation is more expensive, it works right away, the already built up infrastructure is continued to be used. Also setting up replication is not done with a few clicks. The operation costs also depend on the MSSQL server license a bit and of course number of users plpay a role in both MSSQL and terminal server cals, the latter are needed anyway also if the additional number of users use the same server.
One unfortunate thing is how users don't end remote sessions correctly and keep connections open, there is some administrtation needed about that, also updating an app eg with the loader strategy doesn't work on a terminal server always in use, many users share the same exe and thus just one active user hinders an update to replace the running exe, again administration is needed to handle this.
Two two solutions work on making a cut in the tiers of an application, the terminal server makes the cut even outside of the whole application using secondary sites clients as thin clients, as terminals only, keyboard, mouse and monitor are used, they are connected to the terminal server, which runs the app, reacts to input and serves the screen output. Hard things are USB sticks used for data exports, but a rdp connection can (just like remote desktop) share a local USB port as server side device. There is a time lag and especially saving to USB stick needs much more time than locally, another disadvantage of terminal.
The other cut again is outside of the whole application at the end of the database, each client works as on the original site, the only additional costs and line between sites is replicating data, there obviously is no lag in useage, you can use any local devices, eg also serail port devices, etc. but data entered in site 1 needs a lag caused by the data replication/syncing.
In terms of scalability, just think how probable it sounds 10000 users might work on terminals connected to a headquarter site runnning the app on a single server. You say "that's how web applications work", why not? Well, a web application makes much more use of the client side resources, the browser runs the gui, only some user actions (submitting form data for example) make a sewrver side action/request needing a response, you don't run 10000 user session each running a VFP runtime etc. needing exorbitantly more RAM,CPU, etc. So again a point for using replication as means of reusing the same app with globally shared data.
What you seem to want to do is making the cut in the middle of an application, in its data access, that's the hardest way to do this. It's quite simple to make a remote SQL Server connection, but as you want to use a VFP module via SQL Server, your app does not seem to use SQL Server as a backend, you just use it as means of making a connection (?) If that would be the case, if you rather not want to connect to data but to functionality, you better make that connection through IIS (webserver) or more direct via Winsock, not through an SQL Server.
Bye, Olaf.