Sorry if this something beaten to death already...
What is/should be required for a target client machine to use and connect to a local copy of a SqlExpress database Can't seem to get a db connection established to a different machine through a VB6 app. Installed the sql native client on the machine, but still can't connect. What am I missing, or do I have to distribute/install the entire SqlExpress client Working fine from my development machine.
Rick

Distributing database with app
Krey
Do you have SQL Express installed anywhere
You must have a SQL Server running in order to access your data. There are two basic models to do this:
Jen's comments related to TCP and remote connection apply to the second case, where data access is going to the central computer. You need to properly configure SQL Express to accept connections from a VB6 application by enabling TCP in SQL Server and ensuring that the Firewall on the central computer is not blocking access to SQL Express. There is a KB article that describes how to do this at http://support.microsoft.com/default.aspx scid=kb;en-us;914277.
Regards,
Mike Wachal
SQL Express team
John Hind
MotoJames
HTH, Jens Suessmeyer.
---
http://www.sqlserver2005.de
---
Dinesh73
HTH, Jens SUessmeyer.
---
http://www.sqlserver2005.de
---
Dan Danz
HTH, Jens Suessmeyer.
---
http://www.sqlserver2005.de
---
Francis Tracey
Now I'm trying to understand more on User Instance usage:
If not specified in the connection string, what is the default, yes or no
For shared multiuser usage located on a server, should it be enabled or not
I'm just unclear on when/when not to use it.
TIA ... Rick
Abaddon
Hi Rick,
Regarding User Instances:
The recomendation is to use User Instances for:
The advantage/purpose of User Instances is that they give the end-users the required SQL permissions to accomplish things such as attaching a database, which is a requirment for XCopy type deployment. (e.g. where you just copy the database file onto the computer and it is automatically attached at run time. Normally a user has to be an Admin to do this, User Instances allows for non-admin users to do this.)
You can read the details about User Instances in the white paper located at http://msdn.microsoft.com/sql/express/default.aspx pull=/library/en-us/dnsse/html/sqlexpuserinst.asp if you want more information.
As a point of interest about deploying Access databases...
Access files actually have the same requirement, namely that they need a database engine in order to read the data in the file. What makes deploying an MDB file so easy is that the Jet database engine, which is what is used to read an Access database, is installed as part of Windows, so it's already on the computer. No need to deploy it specially.
If you have an installer for your VB6 application, it's likely you can incorporate the SQL Express installation directly into it. This is typically called chaining, where you call two or more installers in sequence. SQL Express supports command line installation, so you can actually call it directly from your existing installation in quiet mode so that your end-users don't even have to mess with it.
I recognize that you're using VB6, so this is only of use to you if you decide to migrate your application to VB.NET 2005 some day, but I'll mention it for your information. VS 2005 includes some built in deployment capabilities that allow you to automatically include SQL Express into your setup. This works for normal Windows Installer packages and for the new ClickOnce deployment. If you haven't looked at VS 2005, it's got some great stuff in it that you might like. Even better, you can get a version totally free, it's called Visual Basic .NET 2005 Express. You can check out more information on http://msdn.microsoft.com/vstudio/express if you interested.
Regards,
Mike
aaronc76