Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Problemas importando hoja de Excel a SQL Server 2005

Iniciado por yens, 29 de Mayo de 2008, 12:46:20 PM

« anterior - próximo »

yens

Estoy tratando de exportar una hoja de Excel .xls a una nueva tabla de sql server 2005 mediante un SELECT * INTO, puesto que esta hoja cambiará con el tiempo y tendrá más columnas, con lo que tirando la tabla y ejecutando esta consulta, me sirve para lo que necesito.

El caso es que al tratar de ejecutar el código, me salta el siguiente error:

CitarLos datos proporcionados en la consulta deben contener al menos una tabla o consulta

Podría pensarse que no recibo datos de la hoja en cuestion del excel, pero si que se reciben, ya lo he comprobado.

Este es el código que utilizo, en la gran mierda de VB.NET, puesto que SSIS sólo permite programar con esto:


Dim connString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=archivo.xls;Extended Properties='Excel 8.0;HDR=YES'"

Dim cnn As New OleDbConnection(connString)

Dim sql As String

sql = "SELECT * INTO TablaDestino IN ''[SQLNCLI.1;Data Source=servidorSql;Initial Catalog=nombreBaseDatos;Integrated Security=SSPI]'' FROM [NombreDeHoja$]"

Dim cmd As New OleDbCommand(sql, cnn)
cnn.Open()
cmd.ExecuteNonQuery()

cnn.Close()


Ésta misma consulta, tratando de hacerle el INSERT INTO en otra hoja nueva de Excel por ejemplo, si que funciona, por lo que es como si pasase de mi la cláusula IN... Pero la sintaxis está bien, ya que si meto alguna cagada, en el código original tengo un try catch donde me devuelve el error en concreto...

El proveedor, tampoco es, he probado ODBC en lugar de SQLNCLI.1 y nada.

A ver si me podéis echar un cable porque me estoy volviendo loco, y algun ejemplo que he encontrado por ahi, hacen lo mismo que yo.

yens

Muy buenas! Veo que os habéis asustado tanto como yo... al final he dado con la solución antes de pirarme del curro:

sql = "SELECT * INTO [ODBC;Server=servidorSql;Database=nombreBaseDatos;].NombreTabla FROM [NombreDeHoja$]"

Parece sencillo... pero al final resultó ser una mezcla de distintas propuestas que encontré... hay qué joderse un ratillo xD






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.