martes, septiembre 25, 2007

Import & Export con SQLDMO.

Hola, bueno hace bastante tiempo que no escribo pero bueno, aquí estoy de vuelta.


Hace unos dias estaba haciendo unas pruebas de como subir y bajar datos desde MSQL 2005 con C#, utilizando SQLDMO, y bueno después de un rato lo conseguí.

aquí la reseña.

Primero antes que nada hay que agregar la referencia a SQLDMO ( Interop.SQLDMO.dll).


using SQLDMO;


Bueno vamos a comenzar con bajar la información de una tabla "TBLXX" desde una base "BD_YY", el proceso es simple y a resumidas cuentas es el siguiente: Se genera una conexion a la BD, se configura el objeto BulkCopy, se instancia el objeto de la tabla con un Item de la BD y se exporta a un path elegido.


   1:  public void PaJuera()
   2:  {
   3:  SQLServer server = new SQLServerClass();

   4:  _BulkCopy bcp = new BulkCopyClass();
   5:  _Database db = new DatabaseClass();
   6:  _Table table = new TableClass();
   7:  server.EnableBcp = true; // Abusados si no ponen esto no pifa.
   8:  server.Connect(ServInstance, "usr", "****");
   9:  bcp.DataFileType = AQLDMO_DATAFILE_TYPE.SQLDMODataFile_CommaDelimitedChar;
  10:  bcp.RowDelimiter = @"\n";
  11:  bcp.UseExistingConnection = true;
  12:  bcp.MaximumErrorsBeforeAbort = 1000;
  13:  bcp.UseBulkCopyOption = true;
  14:  bcp.IncludeIdentityValues = true;
  15:  bcp.UseServerSideBCP = false;
  16:  bcp.DataFilePath = "archivo.txt";
  17:  table = server.Databases.Item("BD_YY", "dbo").Tables.Item("TBLXX", "dbo");
  18:  table.ExportData(bcp);
  19:  server.DisConnect();
  20:   
  21:  }


DataFilePath: es el nombre del archivo al que se va exportar la informacion.
No se olviden de cerrar la conexion y vaciar los objetos que ya no van a ocupar.


la parte de pa' dentro es muy parecida, lo unico que cambia es que en DataFilePath se pone el archivo origen y la parte de:

table.ImportData(bcp)

y eso es todo.

Saludos y espero les sirva.