[dba-VB] SMO was Projects vs Solutions

jwcolby jwcolby at colbyconsulting.com
Fri Nov 20 09:35:42 CST 2009


The object I am referring to is the SMO or SQL Server Management object.  In order to use it you 
have to add several references:

Microsoft.SQLServer.SMO
Microsoft.SQLServer.SMOEnum
Microsoft.SQLServer.SQLEnum
Microsoft.SQLServer.ConnectionInfo

then in the classes using the SMO you have to do

using Microsoft.SqlServer.Management.Smo;

After that you can do things like:

	Server Svr;
	Svr = new Server("MyServerName")
	
	foreach (Database  in Svr.Databases)
	{
		//Etc.
		//	
	}

This allows you to iterate collections of database objects, using them directly or just pulling the 
names out (as I did) to populate lists, combos, collections etc.

As I mentioned, once you have a database object you can manipulate it.  I am just starting to learn 
what I can do with this API but it looks pretty powerful.

John W. Colby
www.ColbyConsulting.com


jwcolby wrote:
> The blind leading the blind here.
> 
> 1) I built a main application
> 2) I referenced the existing file repair applet from the main application (project).
> 3) I set a using statement.  It appears that you have to both reference it and then use the "using" 
> statement.
> 4) I can now open forms out in the file repair applet from the main application.
> 5) I physically moved the file repair applet underneath the main application directory.
> 6) I changed the directory for the applet and it just worked.  That was fairly easy.
> 
>  From this point on I "Add Project" to the main solution.  I have added a class project to wrap the 
> DMO.  In case you haven't discovered it, the DMO is a real cool SQL Server Management Object API 
> that allows you to see and manage database objects.  I am just getting into it but it allows me to 
> reference a server object, then see the database collection.  The each database object has a table 
> collection, the table object has a fields collection etc.  Everything you can see and manage in the 
> SQL Server management studio you can (apparently) see and manage from the SMO from C#.
> 
> An example of what this does for me is allows me to see all of the databases in a server, and thus 
> populate a combo with their names.  Selecting a database from the combo I can see and fill a combo 
> with the names of the tables.  Selecting a database and a specific table I can then can then run my 
> stored procedures that export that table in that database to CSV files.
> 
> That kind of stuff is what I do a lot of and what the big application will manage.
> 
> John W. Colby
> www.ColbyConsulting.com



More information about the dba-VB mailing list