Visual Basic - Variable en sentencia sql

Life is soft - evento anual de software empresarial
   
Vista:
Imágen de perfil de Santiago

Variable en sentencia sql

Publicado por Santiago (1 intervención) el 12/11/2008 21:54:11
Hola tengo un problema
estoy importando datos masivamente desde un archivo de texto mediante la siguiente consulta
SQL = " SELECT * INTO mitabla " & _
"FROM OPENROWSET(" & _
"' Microsoft.JET.OLEDB.4.0'," & _
"' TEXT;Database=" & Ubicacion & ";" & "HDR=No'," & _
"' SELECT * FROM" & Archivo & "' )" " "

donde: &ubicacion es una variable donde mando la ruta del archivo C:....
& Archivo es donde mando el nombre del archivo y su extencion filex.txt
mi poblema es que al ejecutarlo me dice que no se puden usar nombre vacios en campos ni columnas

lo raro es que cuando que hago el "'SELECT * FROM filex#txt ' "

si lo hace.... pero quiero que el nombre del archivo sea dinamico

espero su respuesta
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Variable en sentencia sql

Publicado por apacheco (11 intervenciones) el 17/11/2008 13:38:06
A priori esta bien. Porque no indicas el valor de Ubicacion y de archivo para que veamos el caso completo.

Te sugiero una serie de puntos donde buscar:

El numero de campos de mitabla ¿coinciden con los que vienen en los ficheros de texto?

Da la sensacion que envias file.txt pero dices que funciona bien con file#txt.

Otro problema posible es el formato de los datos de file.txt; que tenga campos nulos. En Vb6 el Nulo (vbnullstring ó "") de los textos es distinto al NULL de las tablas; si asignas un valor NULO de una tabla (p.e. en un recordset) a un campo de texto de la forma

texto1.txt =recordset("CampoNulo") te dara error. Debes hacerlo
texto1.txt=recordset("campoNulo) + vbnullstring (ó + "")

Lo mismo al reves .

INSERT INTO tabla (C1, C2) Values (25, '') te dara error. Debes hacerlo
INSERT INTO tabla (C1, C2) Values (25, NULL)

En la ultima linea debe haber un espacio en blanco entre la M del FROM y la Doble comilla anterior al & Archivo (paece que la has olvidado en el mensaje)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar