Can the SQL Server Import/Export wizard be called from our windows application?
The data import/export wizard is an external app called "DTSWizard.exe", which lives somewhere in your SQL Server installation directories.
In my case, on a 64-bit system with SQL Server 2008 R2 CTP installed, I find it under:
"C:\Program Files (x86)\Microsoft SQL Server\100\DTS\Binn\DTSWizard.exe"
for the 32-bit version
or
"C:\Program Files\Microsoft SQL Server\100\DTS\Binn\DTSWizard.exe"
for the 64-bit version
You can definitely store those locations in some config file and then execute those from a Winforms app.
Marc
The wizard generates an SSIS package. You could save and use that in your application and use variables etc to control it (example: a filename chosen by the user).
Otherwise, you have absolutely no control over what data goes where in the wizard. Surely the load or export functionality of the application is in the context of what makes sense for you app, not do anything and drop it anywhere?
I am guessing here but I think that Import\Export wizard from SQL Managament Studio is simply a wrapper for command line tool called bcp.exe.
There is a lot information about bcp on the Internet so I will provide only one link here:
http://msdn.microsoft.com/en-us/library/ms175937.aspx
Related
I'm coding a C# Console Application that connects to a database and runs some queries where my database Engine is Microsoft SQL Server 2016 and I code in Visual Studio 2015. I have already installed and activated InstallShield Limited Edition on my visual studio and I'm able to make an installation(setup) file for my C# Console Application.
I don't want to to install Sql Server on my customer's PC and attach the database to that manually, instead I want to give everything in an installation file that includes .Net framework 4.5 and my database. The first part(.Net Framework) is done by InstallShield easily, but I don't know how to attach my database to the installation file.
Please explain how to do this and if any other version of InstallShield(Express, Professional or Premier) is needed let me know and explain the steps in that version.
Note that I want to give the installation file to the customer and make every feature of the app function well after he/she installs the program without needing to do anything manually.
Sql server 2016 cannot be installed automatically as it needs to be configured by the user, he must set the instance names, permissions and so on, which makes it unusable for your scenario.
What you need to use is Sql Server LocalDB, this is a subset of Sql Server Express for your concrete scenario, something which can be installed without the need of configuration and capable of attaching a database file also without user interaction.
You can find information about LocalDB here, as you see it can be downloaded as a .msi, in this way you can add this msi to your installshield project and chain it (more info on how to chain an installer here), it will not ask to the user about complex configurations, just a simple installer. To download the .msi you get the sql server express installer on your development machine and instruct it to download media and select the LocalDB package, that will give you the .msi.
Finally you will add the database file as part of your project files, then you only need to specify on the connection string the path to the file.
I want to create a setup file for an application that uses the following tools and technologies:
Microsoft visuals studio 2013
MSSQL server 2012
and I have used winforms and C# to write the program.
My questions are:
If I want to deliver the application to customer without giving out the source code what technique or tool should I use?
How do i supply the database? Should I detach it? How do I provide the database with my application?
I'm assuming you need to deploy the application you've created with Visual Studio rather than deploy Visual Studio itself. In which case you have a variety of options depending on its destination.
You can just copy your executable and required dependencies to a destination without distributing your source. However, there are several tools out there that will subsequently disassemble your assemblies to reveal the source.
The Visual Studio website has a list of options for deploying applications. If you want a tradional Next -> Next -> Finish type of installation, I would suggest using InstallShield Limited Edition.
For SQL deployment it would depend on the Edition you have used and whether the server already exists at the destination. Additionally, it will depend on whether you only need to deploy the schema or populate the database too.
You can distribute SQL Server Express with your application. SQL Server Management Studio will allow you to generate a "CREATE DATABASE" script (right-click database -> Script database as -> CREATE to -> File) from your existing database that can be executed as part of the installation. Alternatively, consider a backup/restore approach as detailed in this article.
I currently access & write data to/from text files but want to make a move over to SQL Server (Also not yet sure which version). Note: This is a Windows Desktop, Windows Forms Application.
My application uses a DB (Single user) & I want to deploy JUST the EXE file, no additional DB/Access tables etc (I want to use SQL Server rather than MSAccess anyway).
What would be the best way to install the tables of the DB onto my users machines? (I also don't want to use MSI installers etc, JUST an EXE file).
Assuming there is an instance of SQL Server available on the client, you could use my company's product BuildMaster to create this EXE for you. Once you've installed it you can:
Install the SQL Server extension (Admin > BuildMaster Extensions)
Create a new Standard Application
Select "Configuration > "Database Connections" from the application menubar
Register a new connection with a fresh SQL Server database
Initialize the database within BuildMaster
Visit "Configuration > "SQL Change Scripts" from the application menubar
Choose "Add Change Script" to upload the script file(s) you'd like to make an EXE from
Once saved, you can select "Download Deployment Tool", this will generate a standalone EXE with the script contained within it
This generated EXE can run with optional arguments (e.g. a custom connection string) as specified in the Using the Change Script Package documentation. Also note that it will only run the scripts one time against the target database. For more information about that, you can read the change script documentation.
Not surprisingly, this is how we deploy BuildMaster's database itself; the tool is contained within the installer as an embedded resource and then written to disk and executed by the installer.
SQL Server isn't designed to be embedded into applications. Consider using an embed-able SQL database such as SQLLite or SQL Server Compact. You can also use certain methods to install SQL Server Express with your application.
I have a .net application in c#. I am using SQL Server 2005 as database. I want to create setup for it. I want that when I run setup it automatically installs SQL Server 2005 which I add in prerequisites.
Please help how to create setup...?
The paid versions of Visual Studio come with the ability to create installer packages, however, that feature is miserably lacking and is being removed in VS11. I have used it, and I can say, its not worth using. There are other free deployment tools out there. I recommend Windows Installer XML.
VisualStudio does have New project -> Other project types -> Setup and Deployment -> Setup Project. As Kendall noted this is a very limited/basic installer solution. However if really all you want to do is have SQL Express as a prerequiste and you app installed then it can manage that (but not much more).
To setup a prerequist:
Go to project properties (right click on setup project -> properties)
and you will find a "Prerequisites" button on that dialog.
This brings up a dialog that lists all the bootstrapper packages that are
located in "Program Files\Microsoft SDKs\Windows\v6.0A\Bootstrapper"
folder. Select/cehck "SQL Server 2005 Express Edition SP2 x86" if
thats what you want.
If you want the full version of SQL server then you will need to find a bootstrapper package for it - googing that (sql 2005 full bootstrapper package) should yeild a result.
Note that SQL server 2005 will limit you to an x86 install - if you want a x64 install use SQL Server 2008 Express/full.
You could create a Setup project in Visual Studio.
It can create an offline setup, which can include prerrequesites or be configured to download said prerrequesites from an online location when installing the offline setup.
http://msdn.microsoft.com/en-us/library/2kt85ked.aspx
Before going into this, though I would like to share my very bitter experience using SQL Server as a prerrequesite, and why you should really avoid it (whichever deployment system you use, actually).
See, the prerrequesites that are available to your Visual Studio instance depend on a folder present on the same machine where VS is installed:
C:\Program Files\Microsoft SDKs\Windows\v7.0A\Bootstrapper\Packages
(this is for VS 2010, replace v7.0A with v6.0A for VS 2008, and replace Program Files with Program Files 9x86) if you're on 64 bits).
You can go check it now, you will most likely see a list of folders, called bootstrapper packages, which have this basic structure:
product.xml : an xml file describing the prerrequesite to Visual Studio. This file is the most important one. It lists:
the files that are needed to install, upgrade or uninstall a prerrequesite
the conditions to evaluate in order to decide which action to undertake. For instance: is the system x86/x64? is the system xp, server 2003, etc? is the prerrequesite already installed? which version? which language?
the actions to undertake depending on these conditions. Generally, the command line arguments to use with the exe file you are installing.
a bunch of executable files (msi, exe): the files needed to install the prerrequesite (there can be none if the product.xml refers to online locations where to get these files).
optionnaly, some folders with a locale name: the localization for your prerrequesite.
Now there are two major categories of issues with this system:
drawbacks of this setup system:
First, the product.xml file is very difficult to build. It will most likely imply you to calculate checksums, create certificates, explore Windows Installer install log files, use a very buggy tool called the Bootstrapper Manifest Generator. You will find yourself googling problems, and the only result will be your own unanswered Stack Overflow question. Trust me, I've been there.
Second, this whole boostrapper thing is litteraly out of (source) control, and an insult to the concepts of team work and continuous integration. Having your project install configuration in Program Files means:
it has to be the same prerrequesites for all your projects.
no versioning.
you must keep the whole prerrequesite folder consistent across all machines that could build the solution, including the CI server (which can be a massive hussle if it is used by several teams).
drawbacks of SQL Server as a prerrequesite:
At first sight, the SQL Server install command line seems quite straightforward. You decide the name of the instance, if it's an install or an upgrade, access rights, etc. The thing is, I cannot count the number of issues you will encounter on your path when you actually try that in real life:
SQL Server won't upgrade from a language to a different language.
SQL Server won't upgrade from SQL Server x86 to SQL Server x64 on an x64 system.
SQL Server not en-US won't install on en-US Windows.
More generally SQL Server will most likely fail to install if anything close to SQL Server has already been installed on the same machine.
If you run the setup manually, it will tell you why. But if you try to do it as prerrequesite, it means that you have to foresee every single configuration issue that could possibly happen. Believe me, you will never see the end of it: there's a reason why the SQL Server Setup is so complex...
Now what could you do?
Ask your clients to have SQL Server installed. It is a decent option, and they have to manage the SQL Server license anyway, since they are the ones using it. Maybe they already have it.
Install it yourself.
Use a different version of SQL Server, like SQL CE. Very lightweight, some less functionalities but if your just want a local database it can do the trick.
Use a different RDB system. I don't know them, maybe they are easier to install.
i have a winform application in c#on visual studio, connected to a database in sql server 2008 and i have done a deployment to it so to use it i must install the sql server management studio and restore the database backup, so Can i when doing the deployment and setup project include or take the database backup to not need to install the SQL server management studio on the PC use this application and from the application i will take a backup from the updated database which has new records
So how do i make a deployment and setup project and embedded in it the database used so i'll not be needed to install the sql server in the PC which act as a server and the clients PCs as i want to use the application in a network?
If your database is trivial, should be accessible from a single computer and is used to store local data look to the.
http://www.microsoft.com/sqlserver/2008/en/us/compact.aspx. For sure you will need to read additional articles about how to use it and deploy it, but this should be a starting point. NOTE: you will not have stored procedures and advanced SQL Server features, but you will use the same code as you do now.
Note that if you want to restored a database from backup to an arbitrary SQL Server instance, you may encounter problems if the instance to which the backup is being restored is configured with options different than the original SQL Server instance (e.g., collation sequence, case-sensitivity, ANSI settings, etc.) If the default collation sequence is different, you may have problems with indices, for instance.
You can use sqlcmd for that, it installs with MSSQL server on client machine look here for details.
After you created bat file, you can run it from code use Process.Start
It's not the SQL Management Studio that is needed to be installed to make the program work, it's SQLServer that must be installed.
For small applications it maybe to much of work to administrate a SQLServer, in that case its better to use other database types... I used to use XML files, lately I use Sqlite, its very good no installation required. and it integrates great into Visual Studio.
Edit: If you only need to restore a .bak you could use that http://sqlbackupandftp.com/restore/ its very nice and easy, and its a very small file.