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

Dbf a tabla sql server 2005

Estas en el tema de Dbf a tabla sql server 2005 en el foro de SQL Server en Foros del Web. Buenos dias copañeros Les escribo desde colombia, he revisado por internet, he visto post, tutoriales, video tutoriales y nada... esto me esta partiendo la cabeza. ...
  #1 (permalink)  
Antiguo 29/06/2010, 04:22
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Dbf a tabla sql server 2005

Buenos dias copañeros

Les escribo desde colombia, he revisado por internet, he visto post, tutoriales, video tutoriales y nada... esto me esta partiendo la cabeza. No se como empezar, revise la pagina del post pero no supe como empezar y mi ingles es muy malo. Agradezco cualquier ayuda que me puedn brindar.

El caso es:

Estoy realizando una aplicacion en vb. Net 2005 , con sql server 2005.

Tengo un dbf (copia. Dbf) y necesito restaurar los campos de una tabla de sql llamada tb_Sisben, los nombre de los campos son exactamente los mismos, solo necesito que elimine los datos de la tabla de sql y pegue los de la copia. Dbf

Llevo dos dias intentandolo y no lo he logrado. Nuevamente agradezco su atencion.
  #2 (permalink)  
Antiguo 29/06/2010, 09:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

Debes RESTAURAR tu base (DBF) en otra base de "paso" y ahi, copias los datos que necesites, no puedes "leer" parte u obtener parte de ese respaldo
  #3 (permalink)  
Antiguo 29/06/2010, 16:01
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

Buena tarde,
Primero, gracias por tu interes,
ok, entendido, pero como le paso los nuevos parametros a la nueva tabla, es decir. puedo crear una tabla por codigo y con inser into asignarle los campos del .dbf, pero el problema persiste, como leo y/o recorro el .dbf para meterle los datos a la nueva tabla...?
Gracias por tu interes
  #4 (permalink)  
Antiguo 29/06/2010, 16:49
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

Creo que estamos en 2 lineas diferentes, ¿tu DBF es un archivo de FOX?
  #5 (permalink)  
Antiguo 29/06/2010, 17:37
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

si señor, el dbf es de fox 6. si mas no tengo entendido sql genera dos tipos de archivos, ldf, mdf
  #6 (permalink)  
Antiguo 30/06/2010, 13:18
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

OK, entonces si es FOX (DBF), debes IMPORTARLO hacia SQL Server y una vez ahi, consultas o haces lo que gustes con el.
  #7 (permalink)  
Antiguo 30/06/2010, 14:02
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

hola iislas, si estas muy opcupado, fresco no pasa nada, pero de veras te noto poco interes en ayudarme, se que ni te estoy pagando ni nada, pero si quieres hacer el favor, pon un poco mas de interes.
Puedo importar los datos de dbf a sql, eso lo se, pero necesito hacerlo por codigo, no directamente desde sql server. He escuchado algo sobre SST y SSSI pero la verdad no entiendo mucho.. y el problema es que me toca por codigo, he ahy el problema.
Me decis que debo hacerlo en una tabla de paso, si lograra conseguirme el codigo para leer el DBF de FOX y pasarlo a una tabla de SQL, cosa que veo demasiado complicado (son aprox. 2 millones de registros y esta restauracion se hace todos los dias).
Despues de tener los datos en una tabla de paso, llenar la que necesito, es decir copiar de nuevo los 2 millones de registros. Esto se demorara 30 minutos..... muchisimo tiempo...
Ahora, tengo otro inconveniente, si no es molestia le contare..... el DBF de Fox su esttructura, (Campos, Datos "Fechas") es diferente a mi tabla de sql
ejemplo....
FOX SQL
Campo Campo
Ficha id_ficha
Fechainc(Britanica) Fec_fic(Inglesa)

No se si me he hecho enteder....Gracias
  #8 (permalink)  
Antiguo 30/06/2010, 14:11
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Dbf a tabla sql server 2005

Prueba con OPENROWSET. Si no funciona, entonces no queda otra que usar SSIS.
Aqui unos tutoriales: http://msdn.microsoft.com/es-es/library/ms167031.aspx
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #9 (permalink)  
Antiguo 30/06/2010, 15:07
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

flaviovich... muchas gracias por su interes....
Estuve revisando lo de OPENROWSET, pero mi ignorancia es mucha... no entendi ....jajja
si has leido el hilo de este post... me podrias ayudar? no se porque me tienen que entregar un .dbf... malditos.....
Gracias...
  #10 (permalink)  
Antiguo 30/06/2010, 16:17
Avatar de flaviovich  
Fecha de Ingreso: agosto-2005
Ubicación: Lima, Peru
Mensajes: 2.951
Antigüedad: 18 años, 8 meses
Puntos: 39
Respuesta: Dbf a tabla sql server 2005

Aqui tienes un ejemplo: http://www.forosdelweb.com/f87/selec...la-dbf-545400/
Código SQL:
Ver original
  1. SELECT *
  2. FROM OPENROWSET('MSDASQL',
  3. 'Driver=Microsoft Visual FoxPro Driver; SourceDB=d:\turuta; SourceType=DBF',
  4. 'SELECT * FROM tutabla')
Revisaste el link que te pase?
__________________
No repitamos temas, usemos el Motor de busquedas
Plantea bien tu problema: Ayúdanos a ayudarte.
  #11 (permalink)  
Antiguo 30/06/2010, 17:25
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

Tu lo has dicho, que te entreguen un archivo PLANO (TEXTO) y SQL Server, no importando los millones que sean, lo procesaria (subiria), sin problema alguno, ¿como?, con BULK INSERT.

Haaaaaaaaaa y disculpa mi "poco interes", pero asumimos que los colegas que por aqui pasamos, conocemos el "ABC" de SQL Server.
  #12 (permalink)  
Antiguo 30/06/2010, 17:49
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

flaviovich, muchas gracias.... pero me arrojo un erro al ejecutar la consula...sabes a que se debe?

El proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)" devolvió el mensaje "[Microsoft][Administrador de controladores ODBC] El controlador no admite esta función".
Mens. 7303, Nivel 16, Estado 1, Línea 1
No se puede inicializar el objeto de origen de datos del proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)".

iislas, disculpe si lo ofendi, no era mi intencion, disculpe, de veras es que toy desesperado se que no es motivo para mi groceria...
con respecto a lo de bulk insert me parece genial. pero que ya no me entregan un txt, solo un .dbf,,, se podria hacer con dbf.,... de ser asi me podrias orientar como hacerlo, no entendi mucho sobre bulk insert...
como decia lines atras.. lo que pasa es que el dbf que me entregan tiene mas columnas que mi tabla sql, y en el dbf las nombran diferente a como yo lo hago.. hay alguna forma de decirle por ejemplo que la columna ficha del dbf ira en mi columna id_ficha de sql....?
gracias nuevamente y disculpa mi ofensa...
  #13 (permalink)  
Antiguo 30/06/2010, 18:06
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

encontre esto.
Bulk Insert works on text files. Is the DBF file a text file of a database file from another RDMS or database program? If it is you'll need to use DTS to copy the file using ODBC or OLE DB.

Busque sobre DTS pero no se si me he vuleto estupido, o esto ya me esta atrofiando el cerebro, pero intente construir el DTS pero sin exito alguno... si les puede servir de algo. mi tabla se llama copia.dbf y esta en la unidad c...pero al construir el DTS el no quedaria anclado a la unidad C: ? mi pensar es el siguiente.. el usuario elige la ruta donde esta el .dbf a restaurar y la aplicacion borra todos los campos de mi tabla sisben_total de sql server y pega algunos campos del dbf a esta tabla... tal como dije anteriormente, los campos no son los mismos y en el dbf se mencionan los campos diferente a como yo lo hago en mi tabla sisbeb_total de sql...no se si he sido claro.... GRACIAS .. MUCHAS GRACIAS por su ayuda y tiempo...
  #14 (permalink)  
Antiguo 30/06/2010, 19:21
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

Disculpen tantos comentarios... pero creo que es mi deber mantenerlos informados...
Hice esto desde sql y funciono ... bueno en parte...

declare @direct as varchar(180)
declare @tabla as varchar(180)

set @direct = 'c:\'
set @tabla = 'midbf'

declare @direcc as varchar(300)
declare @consult as varchar(300)

set @direcc ='Driver=Microsoft Visual FoxPro Driver; SourceDB=' + @direct + '; SourceType=DBF'
set @consult = 'SELECT * FROM OPENROWSET(''MSDASQL'',''' + @direcc + ''',''' + @consult + ''')'

me dice que la consulta se realizo correctamente.. pero no me muestra los resultados... me gustaria si es posible desde vb.net meter en un dataset los resultados que me arroja, siendo asi,, puedo actualizar mas facilmente mi tabla sisben_total
  #15 (permalink)  
Antiguo 01/07/2010, 11:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

Y despues de esta linea:

/*
set @consult = 'SELECT * FROM OPENROWSET(''MSDASQL'',''' + @direcc + ''',''' + @consult + ''')'
*/

¿Que mas ejecuta?
  #16 (permalink)  
Antiguo 01/07/2010, 13:56
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

iislas, gracias, por tu ayuda..
acabe de poner esta linea... he sido un torpe y no la habia puesto antes..
execute ('SELECT * FROM OPENROWSET(''MSDASQL'',''' + @direcc + ''',''' + @consult + ''')')
pero me aparece el mismo error
El proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)" devolvió el mensaje "[Microsoft][Administrador de controladores ODBC] El controlador no admite esta función".
Mens. 7303, Nivel 16, Estado 1, Línea 1
No se puede inicializar el objeto de origen de datos del proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)".

En el dbf se manejan fechas de 8 caracteres es decir fecha britanica... mm/dd/yy, sera que es por eso? o porque la tabla dbf, me la entregan sin llave primaria?...
Bueno gracias por su colaboracion...
  #17 (permalink)  
Antiguo 01/07/2010, 16:39
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

Te preguntaba por la es linea en especifico, porque estas SETEANDO la variable @consult, cuando tambien la ocupas dentro de la linea....¿no esto erroneo?
  #18 (permalink)  
Antiguo 01/07/2010, 17:39
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

si tienes razon
la cambien por esto
SELECT * FROM OPENROWSET('MSDASQL','' + @direcc + '','' + @consult + '')
pero, me aprece un error dice
Mens. 102, Nivel 15, Estado 1, Línea 11
Sintaxis incorrecta cerca de '+'.
aun asi si hago esto

SELECT *
FROM OPENROWSET('MSDASQL',
'Driver=Microsoft Visual FoxPro Driver; SourceDB=c:\; SourceType=DBF',
'SELECT * FROM midbf')

no me devuelve resultados.. dice que se ejecuto la consulta pero no me muestra los resultados de mi dbf...
  #19 (permalink)  
Antiguo 01/07/2010, 17:43
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

compañeros.. ay solucione el error tenia un erro en el driver de odbc.. me arroja todos los datos de mi dbf.. ahora otra preguntica si no es molestia..
como podria construir un insert into de tal manera que me copie ciertos campos de este dbf en mi tabla de sql server..
es decir.. en fox un campo se llama ficha y en mi talba de sql se llama, id_ficha
en fox lo hacia con un with...soben como hacer aca?
  #20 (permalink)  
Antiguo 02/07/2010, 11:25
 
Fecha de Ingreso: mayo-2010
Mensajes: 17
Antigüedad: 13 años, 11 meses
Puntos: 0
Respuesta: Dbf a tabla sql server 2005

Campañeros foristas,
Este mensaje es de agradecimiento, a todos los que con su ayuda y paciencia han hecho de esta persona, alguien muy agradecido. Gracias a todos; en especial a flaviovich, el cual paso los limites y tuvo la paciencia y serenidad para ayudarme con todos los problemas que tenia con mi base de datos, a el le debo todo mi agradecimiento y respeto.
La solucion fue gracias a flaviovich, el cual pudo detectar que el problema era con mi driver de fox, el se mantuvo siempre atento y su ayuda fue incondicional.
Esto fue lo que hicimos:

INSERT INTO mitabla(<campos segun orden columnas seleccionadas>) SELECT * FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; SourceDB=c:\mi_ruta; SourceType=DBF', 'SELECT <aqui las columnas que necesites> FROM midbf')

El driver que me proporciono es VFPODBC, y no se si se pueda montar el link, segun las normas del foro, pero es descargable desde microsoft/vfox/downloads.
si no lo encuentran me pueden enviar un mensaje a [email protected] y se los proporcionare, para aquellos que aun no cuenten con el.
El error que me salia siempre ya sea por el asistente, o por codigo era este; para su referencia:
El proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)" devolvió el mensaje "[Microsoft][Administrador de controladores ODBC] El controlador no admite esta función".
Mens. 7303, Nivel 16, Estado 1, Línea 1
No se puede inicializar el objeto de origen de datos del proveedor OLE DB "MSDASQL" para el servidor vinculado "(null)".

Gracias nuevamente a iislas y a flaviovich
  #21 (permalink)  
Antiguo 02/07/2010, 22:57
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dbf a tabla sql server 2005

No hay nada que agradecer, el master flaviovich y muchos de nosotros lo hacemos con el simple afan de ayudar, saludos

Etiquetas: dbf, server, sql, tablas
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 19:53.