Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Exportar datos de Excel a SQL SERVER (SIN DTS)

Estas en el tema de Exportar datos de Excel a SQL SERVER (SIN DTS) en el foro de SQL Server en Foros del Web. Hola. Tengo una planilla en excel con muchos datos (algunos insignificantes). Quiero pasarlos a una tabla SQL SERVER, el problema es que estoy usando SQL ...
  #1 (permalink)  
Antiguo 15/06/2009, 15:53
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
Puntos: 2
Exclamación Exportar datos de Excel a SQL SERVER (SIN DTS)

Hola.

Tengo una planilla en excel con muchos datos (algunos insignificantes).

Quiero pasarlos a una tabla SQL SERVER, el problema es que estoy usando SQL SERVER EXPRESS por lo cual no tiene la opcion de hacer un DTS.

Como lo puedo hacer?

Por su ayuda muchas Gracias"


No puedo hacerlo con OPENROWSET, OPENDATASOURCE ni BULK INSERT, ya que no tengo permisos en sql server para hacerlo...
Mi única opción es hacerlo desde c#... alguien sabe como lo puedo hacer?

Gracias!

Última edición por pyroCL; 17/06/2009 a las 08:47 Razón: (Más Problemas)
  #2 (permalink)  
Antiguo 15/06/2009, 16:08
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 9 meses
Puntos: 39
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Se supone que con OPENROWSET tambien se puede.
Intentalo.
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #3 (permalink)  
Antiguo 16/06/2009, 06:54
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Hola, lo intenté hacer con OPENDATASOURCE desde el editor de SQL, pero al parecer no tengo permisos para hacer ese tipo de query.

SELECT * INTO EMPLEADO FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=C:\MAESTRO.xls;Extended Properties=Excel 8.0')...[lista$]

Este es el código que ocupé, al parecer no tiene errores.

Pero me tira este error.
Msg 15281, Level 16, State 1, Line 1
SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure. For more information about enabling 'Ad Hoc Distributed Queries', see "Surface Area Configuration" in SQL Server Books Online.

Ya que no me funcionó, lo quiero hacer a través de C# con éste código.

ADODB.Connection cn;
string strSQL;
long IngRecsAff;

cn = new ADODB.Connection();

cn.Open("Provider=SQLOLEDB;Data Source=sdcappdev2;" + "Initial Catalog=Capacitacion;User ID=adm_capacitacion:Password=Desa2009");

strSQL="SELECT PERSONA,D_V,NOMBRE,APELLIDO_PATERNO INTO EMPLEADO (RUT,DIGITO,NOMBRE,APELLIDO_PATERNO) FROM" + "OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0'," + @"'Data Source=C:\Maestro.xls;" + "Extended Properties=Excel 8.0')..[lista$]";

Debug.Print strSQL;

cn.Execute strSQL, IngRecsAff, adExecuteNoRecords;

Debug.Print("Records affected:" + IngRecsAff);

Pero no me funciona, tiene algo mal y no se que es. Por favor si alguien me puede ayudar lo agradecería mucho.
  #4 (permalink)  
Antiguo 16/06/2009, 15:24
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Ya, no puedo pasarlo directamente desde SQL EXPRESS, ya que no tengo permisos, no tengo opcion de DTS ni de import... (OPENROWSET no funcionó, gracias de todas formas flaviovich)

Estoy intentando pasar los datos de excel a sql server a través de C#... alguien me puede ayudar con esto?

La idea es pasar desde la hoja de excel algunas columnas a una tabla creada en SQL SERVER.

AYUDA! Gracias!
  #5 (permalink)  
Antiguo 17/06/2009, 05:34
 
Fecha de Ingreso: junio-2007
Mensajes: 28
Antigüedad: 16 años, 11 meses
Puntos: 0
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Yo guardaría el excel en un csv y despues haría un bulk insert del csv
  #6 (permalink)  
Antiguo 17/06/2009, 08:32
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Gracias garruc por tu respuesta, pero desgraciadamente tampoco lo puedo hacer con bulk, ya que no tengo permisos para hacer este procedimiento desde sql server.

La unica opcion que tengo para hacer este traspaso de datos es a través de C#.

Alguna idea de como hacerlo?

Gracias.
  #7 (permalink)  
Antiguo 17/06/2009, 10:33
Avatar de Andres95
Colaborador
 
Fecha de Ingreso: diciembre-2004
Mensajes: 1.802
Antigüedad: 19 años, 5 meses
Puntos: 38
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Si..


puedes abrir su archivo con el controlador de excel...algo como esto..(aunque este no es un foro de .net )

Código:
private void OpenExcelFile() 
{ 
    try { 
        
        string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=YES;IMEX=1;\""; 
        _oCnx_ExcelFile = new OleDbConnection(connectionString.Replace("{0}", _strExcelFileName)); 
        _oCnx_ExcelFile.Open(); 
    } 
    catch (Exception ex) { 
        throw new ApplicationException("The loaded file is invalid." + ex.Message); 
    } 
    
}
Con un select cargas el contenido a un dataset...lo conviertes a XML

Y el XML lo envias como parametro a un sp en donde lo lees con los siguientes comandos para leerlo

Código:
sp_xml_preparedocument 

OPENXML (@idoc, '/path', #)

sp_xml_removedocument
Saludos!
__________________
La sencillez y naturalidad son el supremo y último fin de la cultura...
--
MCTS : SQL Server 2008, .NET Framework 3.5, ASP.NET Applications.
  #8 (permalink)  
Antiguo 21/06/2009, 12:27
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

SQL Server blocked access to STATEMENT 'OpenRowset/OpenDatasource' of component 'Ad Hoc Distributed Queries' because this component is turned off as part of the security configuration for this server. A system administrator can enable the use of 'Ad Hoc Distributed Queries' by using sp_configure

Creo que el aviso lo dice bien claro: Necesitas habilitar en el server sql las transacciones Ad Hoc.
Esto se hace en el Surface Area Connection.

Saludos
  #9 (permalink)  
Antiguo 24/06/2009, 07:03
Avatar de pyroCL  
Fecha de Ingreso: marzo-2009
Ubicación: C#
Mensajes: 261
Antigüedad: 15 años, 2 meses
Puntos: 2
Respuesta: Exportar datos de Excel a SQL SERVER (SIN DTS)

Gracias por sus respuestas... Probaré como me va.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:56.