Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Importar datos de excel (.xls) a Interbase (.gdb) (https://www.clubdelphi.com/foros/showthread.php?t=92168)

ClaraMaria 16-08-2017 17:07:37

Importar datos de excel (.xls) a Interbase (.gdb)
 
Buenos días, tengo una duda que me ha estado dando vueltas en la cabeza y hasta ahora no obtengo soluciones, lo que quiero saber si es posible importar un listado de excel(.xls) completo a una tabla existente en una base de datos en interbase, la importación solo seria una vez no siempre, lo que pasa es que tengo un listado de 4000 clientes, y pasar 1 por 1 seria complicado, ojala me puedan ayudar.
Muchas Gracias.

Casimiro Notevi 16-08-2017 17:11:36

Si con "listado" te refieres a una hoja de cálculo normal, entonces mira los enlaces de abajo, al final de esta página.

ClaraMaria 16-08-2017 17:23:04

Cita:

Empezado por Casimiro Notevi (Mensaje 520301)
Si con "listado" te refieres a una hoja de cálculo normal, entonces mira los enlaces de abajo, al final de esta página.

si ya he visto eso pero no le entiendo muy bien y he buscado varios días un tutorial o algo que me ayude entender mejor la importación y no logre obtener solución :(

Casimiro Notevi 16-08-2017 17:37:55

Pues lo explica muy bien en algunos de ellos:
http://www.clubdelphi.com/foros/show...0844#post10844
http://www.clubdelphi.com/foros/showthread.php?t=64294

ClaraMaria 16-08-2017 17:43:52

Para importar datos de excel a una tabla existente de una base de datos de interbase es por medio de delphi7, parte de mi pregunta era si es posible hacerlo directamente

Casimiro Notevi 16-08-2017 17:49:39

¿De la hoja de cálculo a la base de datos?
No, no creo que puedas, salvo que desde la hoja de cálculo exportes los datos en formato texto y entonces sí podrás abrir esos datos desde interbase como una tabla externa.

ClaraMaria 16-08-2017 17:53:42

Cita:

Empezado por Casimiro Notevi (Mensaje 520308)
¿De la hoja de cálculo a la base de datos?
No, no creo que puedas, salvo que desde la hoja de cálculo exportes los datos en formato texto y entonces sí podrás abrir esos datos desde interbase como una tabla externa.

En ese caso si lo exporto los datos en formato texto lo podre insertar a mi tabla existente "clientes" por decir.

Casimiro Notevi 16-08-2017 18:01:31

Puedes usar cualquier "manager" como ibexpert, flamerobin, etc. para importar desde un fichero de texto que hayas exportado desde la hoja de cálculo.

ClaraMaria 16-08-2017 18:06:58

Cita:

Empezado por Casimiro Notevi (Mensaje 520310)
Puedes usar cualquier "manager" como ibexpert, flamerobin, etc. para importar desde un fichero de texto que hayas exportado desde la hoja de cálculo.

y en el caso de que quiera hacerlo por una hoja de calculo tendría que ser por delphi7.

Casimiro Notevi 16-08-2017 18:11:17

No entiendo lo que dices.

Desde Delphi puedes acceder directamente a la hoja de cálculo y extraer los datos y almacenarlos en la base de datos.
Desde la hoja de cálculo puedes exportar los datos y luego importarlos desde Delphi a la base de datos.
Desde la base de datos puedes importar los datos que antes han sido exportados desde la hoja de cálculo en algún formato de texto.

ClaraMaria 16-08-2017 18:19:40

exactamente cualquiera de estas 2:

Desde Delphi puedes acceder directamente a la hoja de cálculo y extraer los datos y almacenarlos en la base de datos.
Desde la hoja de cálculo puedes exportar los datos y luego importarlos desde Delphi a la base de datos.


cumplen el mismo objetivo que es poner todos los datos a mi tabla existente de la base de datos interbase, eso justamente estoy buscando poder solucionarlo de cualquier forma, los pasos son estos 2 link que me diste:

http://www.clubdelphi.com/foros/showthread.php?p=10844
http://www.clubdelphi.com/foros/showthread.php?t=64294

Casimiro Notevi 16-08-2017 18:25:34

Bien, estupendo :)

ClaraMaria 16-08-2017 19:45:17

alguien no tendrá un videotutorial o tutorial con imagen para que me pueda ayudar, soy novata en esto, tengo un base de datos ya creada pero necesito aprender como pasar los datos de mi excel a ella y no tengo ni idea por donde empezar como les había dicho he buscado mucho por Internet y no pude encontrar respuestas y me urge hacer eso. :(:(

Casimiro Notevi 16-08-2017 20:11:56

¿Y para qué te he pasado los enlaces? :confused::confused::confused:

ClaraMaria 16-08-2017 20:19:18

Cita:

Empezado por Casimiro Notevi (Mensaje 520321)
¿Y para qué te he pasado los enlaces? :confused::confused::confused:

clubdelphi.com/foros/show...0844#post10844 este de aqui lo he leido y dice el titulo Llevar desde excel a una BD paradox y cuando dice
Cita:

5. En la ficha "Conexión" (Connection), en el cuadro "Usar nombre de origen de datos" (o algo así) escribe el nombre del archivo excel (te deja buscarlo con un botoncito)
no hay el formato xls solo el de access los datos lo pongo en formato access y conecta todo pero de ahi ya no se que mas hacer.

NOTA:
Lo que hice fue abrir el delphi, crear un from y puse el ADO para conectar Access pero nose que hacer para pasar esos datos a interbase (ibexpert)

Casimiro Notevi 16-08-2017 20:22:46

¿Has visto este enlace?

ClaraMaria 16-08-2017 20:56:04

Si pero ahi esta intentando crear una aplicacion conectandose a excel para que se muestre todos los campos de ese archivo xls.

Casimiro Notevi 17-08-2017 01:11:51

¿Y no es eso lo que quieres hacer?

ClaraMaria 17-08-2017 01:17:37

Cita:

Empezado por Casimiro Notevi (Mensaje 520338)
¿Y no es eso lo que quieres hacer?

Lo que yo quiero hacer es que todos los datos que contienen los campos (APELLIDO PATERNO , APELLIDO MATERNO, NOMBRE, TELÉFONO, DIRECCIÓN ) del archivo .xls de excel con el nombre(clientes) pasarlo a mi tabla existente clientes de ibexpert (interbase) ya que son mas de 4000 mil registros.

Casimiro Notevi 17-08-2017 01:19:29

Vae, pues ya tienes el código de ejemplo en el enlace, tú pasas los campos que necesitas, y no pasas los que no necesitas.

ClaraMaria 17-08-2017 01:29:16

Cita:

Empezado por Casimiro Notevi (Mensaje 520340)
Vae, pues ya tienes el código de ejemplo en el enlace, tú pasas los campos que necesitas, y no pasas los que no necesitas.

Si he visto el codigo pero no lo entiendo al abrir el delphi nose si solo tengo que poner los componentes de ado o tengo que crear label, botones etc estot perdido en eso :(

Casimiro Notevi 17-08-2017 01:33:41

Cita:

Empezado por ClaraMaria (Mensaje 520342)
... estot perdido en eso :(

Pues ve poco a poco y cuando tengas una duda, la preguntas aquí. Así irás aprendiendo al mismo tiempo que haces el trabajo.

ClaraMaria 17-08-2017 01:37:21

Cita:

Empezado por Casimiro Notevi (Mensaje 520343)
Pues ve poco a poco y cuando tengas una duda, la preguntas aquí. Así irás aprendiendo al mismo tiempo que haces el trabajo.

Entonces tengo que crear una aplicacion que se conecte excel con AdoConnection y tambien conectar el IBDatabase con interbase para que despues se pueda hacer el codigo y asi pueda transferir los datos?

Casimiro Notevi 17-08-2017 01:43:04

Exacto.
Pero ve paso a paso, primero el botón para elegir la hoja de cálculo que importarás.
Luego de termnar con eso, puedes iniciar el apartado de importar los datos de esa hoja de cálculo.
Cuando termines con eso, haces la parte que guarda esos datos en una base de datos.
Y así, paso a paso, no quieras hacer todo de golpe.

ClaraMaria 17-08-2017 01:54:47

Cita:

Empezado por Casimiro Notevi (Mensaje 520345)
Exacto.
Pero ve paso a paso, primero el botón para elegir la hoja de cálculo que importarás.
Luego de termnar con eso, puedes iniciar el apartado de importar los datos de esa hoja de cálculo.
Cuando termines con eso, haces la parte que guarda esos datos en una base de datos.
Y así, paso a paso, no quieras hacer todo de golpe.

haber cuando yo abro el delphi7 y creo un FORM1 ya se crea por defecto esto
Cita:

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;
Ahora comparándolo con el código del primer link que me mandaste

Cita:

uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, Db, DBTables, ComObj, ComCtrls;

Tengo que crear estos componentes en el FORM1 (StdCtrls, Buttons, Db, DBTables, ComObj, ComCtrls)

Este StdCtrls creo que es el Label de la lista Standard?

Este Buttons creo que es el BitBtn de la lista Additional?

Estos no se de cual es Db, DBTables, ComObj, ComCtrls?

Casimiro Notevi 17-08-2017 01:59:58

¿Te dedicas a la programación? ¿estudias programación?

ClaraMaria 17-08-2017 02:03:46

Cita:

Empezado por Casimiro Notevi (Mensaje 520347)
¿Te dedicas a la programación? ¿estudias programación?

Soy novata, estoy empezando por necesidad pero me urge hacer esto ya que tengo que aprender esa parte de importar porque tengo un trabajo que hacer en los próximos días que es pasar y son muchos registros y me tomaría imagínate demasiado tiempo para pasar mas de 4000 registros como mínimo, es que la bd tiene que estar actualizada.:(:(:(

Casimiro Notevi 17-08-2017 02:07:09

Entonces ¿trabajas de programadora?

ClaraMaria 17-08-2017 02:14:08

Cita:

Empezado por Casimiro Notevi (Mensaje 520349)
Entonces ¿trabajas de programadora?

recien empece a estudiar programación yo trabajo en pasar registros a la base de datos de interbase manualmente a diario pero hay un listado de muchos clientes que faltan actualizar y es urgente pasarlo son todas las inscripciones que se hicieron antes de que usen una base de datos y eso se tienen que actualizar a la base de datos.
Es por eso que quiero saber como hacerlo para aprenderlo y ponerlo en practica, ahorita estoy usando un excel de prueba con la que estoy queriendo intentar para después en los próximos días que me den el listado poder pasar todos.:(:(

Casimiro Notevi 17-08-2017 02:29:27

Lo más rápido es que abras la hoja de cálculo, exportes los datos que quieras a un fichero de "csv" (datos separados por comas).
Luego abres el ibexpert, conectas a la base de datos y le dices que importe ese fichero csv.
Eso lo haces en 5 minutos.

ClaraMaria 17-08-2017 02:43:30

Cita:

Empezado por Casimiro Notevi (Mensaje 520351)
Lo más rápido es que abras la hoja de cálculo, exportes los datos que quieras a un fichero de "csv" (datos separados por comas).
Luego abres el ibexpert, conectas a la base de datos y le dices que importe ese fichero csv.
Eso lo haces en 5 minutos.

ya he intentado con la opcion de importar data en interbase pero no se puede me sale error ademas la tabla esta enlazado con otras 3 mas. habra alguna solucion

luisgutierrezb 17-08-2017 06:26:57

Se me ocurren 2 cosas la primera en Excel hacer mediante fórmula la instrucción insert de SQL concatenado celdas y demás, copias las instrucciones al ibexpert u otro y ya, otra manera con access importas el Excel y lo exportas por odbc a una tabla nueva y luego copias los datos a la tabla donde deben ir los datos

Casimiro Notevi 17-08-2017 10:57:31

Cita:

Empezado por ClaraMaria (Mensaje 520352)
ya he intentado con la opcion de importar data en interbase pero no se puede me sale error ademas la tabla esta enlazado con otras 3 mas. habra alguna solucion

Creo que comprenderás que no tenemos una bola de cristal para darte soluciones, tus explicaciones son muy ambiguas.
Además tampoco se nota que tengas interés en hacerlo, más bien estás esperando que alguien llegue con una varita mágica y te dé una solución que solamente sea copiar-pegar, y así no se puede.
Ni siquiera has probado lo de importar desde ibexpert, aunque hayas dicho "no se puede me sale error", porque lo acabo de mirar y el ibexpert no tiene esa opción, me refería a otro programa,

La cosa es muy simple, y tendrás que hacerlo, como siempre, paso a paso:

1. Desde la hoja de cálculo exportas a formato CSV los campos que necesitas. Obtendrás un fichero de texto más o menos así:
Cita:

"GORDO","REDONDO","JUAN","111111111","CALLE LA VERDAD"
"DELGADO","FINO","PEDRO","222222222","CALLE LA MENTIRA"
"RUBIA","DEBOTE","ANA","555555555","CALLE PERDIDA"
2. Ahora puedes usar FBexpert con los parámetros adecuados para importar esos datos a tu base de datos.
O hacerte un sencillo programa delphi que lea ese fichero de texto y vaya insertando línea a línea en tu base de datos.

Guti13 17-08-2017 11:10:44

Exportar
 
Buenos días Clara, Casimiro tiene razón, no existe nada que con una varita exporte datos. Hay distintas opciones, si conoces MS Access te sugiero que hagas lo siguiente.

1.-Crea una conexión ODBC a tu base de datos IB.
2.-Crea una base de datos Access
3.-Vincula la tabla destino de IB al Access
4.-Importa la hoja Excel a Access
5.-Mediante una consulta de inserción de Access asocias los campos de la tabla excel a la tabla IB

Espero que esto te sirva

ClaraMaria 17-08-2017 23:13:08

Cita:

Empezado por Casimiro Notevi (Mensaje 520360)
Creo que comprenderás que no tenemos una bola de cristal para darte soluciones, tus explicaciones son muy ambiguas.
Además tampoco se nota que tengas interés en hacerlo, más bien estás esperando que alguien llegue con una varita mágica y te dé una solución que solamente sea copiar-pegar, y así no se puede.
Ni siquiera has probado lo de importar desde ibexpert, aunque hayas dicho "no se puede me sale error", porque lo acabo de mirar y el ibexpert no tiene esa opción, me refería a otro programa,

La cosa es muy simple, y tendrás que hacerlo, como siempre, paso a paso:

1. Desde la hoja de cálculo exportas a formato CSV los campos que necesitas. Obtendrás un fichero de texto más o menos así:
2. Ahora puedes usar FBexpert con los parámetros adecuados para importar esos datos a tu base de datos.
O hacerte un sencillo programa delphi que lea ese fichero de texto y vaya insertando línea a línea en tu base de datos.

Por supuesto que ibexpert tiene la opcion Importar datos esta en la sección de Tools - Import Data esta justamente de bajo de Log Manager es por eso que decía, cuando uso el Import data de Ibexpert version 2009 solo me deja importar los datos en una nueva tabla pero en la tabla existente no me deja me vota error aparte que la tabla existente esta enlazado con otras 3 tablas mas.

ClaraMaria 17-08-2017 23:21:52

Cita:

Empezado por Casimiro Notevi (Mensaje 520360)
La cosa es muy simple, y tendrás que hacerlo, como siempre, paso a paso:

1. Desde la hoja de cálculo exportas a formato CSV los campos que necesitas. Obtendrás un fichero de texto más o menos así:
Cita:

"GORDO","REDONDO","JUAN","111111111","CALLE LA VERDAD"
"DELGADO","FINO","PEDRO","222222222","CALLE LA MENTIRA"
"RUBIA","DEBOTE","ANA","555555555","CALLE PERDIDA"
2. Ahora puedes usar FBexpert con los parámetros adecuados para importar esos datos a tu base de datos.
O hacerte un sencillo programa delphi que lea ese fichero de texto y vaya insertando línea a línea en tu base de datos.

Ese FBexpert es un programa aparte o es parte del programa Ibexpert (que version yo uso la version 2009).
ahora si se crea un programa delhpi que lea ese fichero de texto y vaya insertando linea a linea en la BD eso seria ¿1 por 1? o de forma automática también.

Casimiro Notevi 17-08-2017 23:33:09

Cita:

Empezado por ClaraMaria (Mensaje 520384)
Por supuesto que ibexpert tiene la opcion Importar datos esta en la sección de Tools - Import Data esta justamente de bajo de Log Manager es por eso que decía, cuando uso el Import data de Ibexpert version 2009 solo me deja importar los datos en una nueva tabla pero en la tabla existente no me deja me vota error aparte que la tabla existente esta enlazado con otras 3 tablas mas.

Tengo una versión de ibexpert que no tiene la opción de importar datos.
Cita:

Empezado por ClaraMaria (Mensaje 520384)
tabla existente esta enlazado con otras 3 tablas mas.

¿Y cuál es el problema?
Cita:

Empezado por ClaraMaria (Mensaje 520385)
Ese FBexpert es un programa aparte o es parte del programa Ibexpert (que version yo uso la version 2009).

Es un programa distinto.
Cita:

Empezado por ClaraMaria (Mensaje 520385)
ahora si se crea un programa delhpi que lea ese fichero de texto y vaya insertando linea a linea en la BD eso seria ¿1 por 1? o de forma automática también.

Un bucle donde recorres el fichero de texto y vas leyendo línea a línea. Cada línea la procesas y guardas en la base de datos. Pasas a la siguiente línea... hasta que no queden más.

ClaraMaria 18-08-2017 00:03:48

Cita:

Empezado por Casimiro Notevi (Mensaje 520387)
Tengo una versión de ibexpert que no tiene la opción de importar datos.
¿Y cuál es el problema?

Es un programa distinto.

Un bucle donde recorres el fichero de texto y vas leyendo línea a línea. Cada línea la procesas y guardas en la base de datos. Pasas a la siguiente línea... hasta que no queden más.

Entiendo haber yo cuando ingreso los clientes de inscripción tengo que llenar estos campos.

Cita:

Fecha Contrato (Edit Automatico, Muestra la fecha actual primero y se puede cambiar la fecha manual)
TIPO PERSONA (Combobox)
Documento Identificacion (Combobox)
Apellido Paterno (Edit)
Apellido Materno (Edit)
Primer Nombre (Edit)
Segundo Nombre (Edit)
Estado Civil (Comobobox)
Zona (Combobox)
Departamento (Combobox)
Provincia (Combobox)
Distrito (Combobox)
Lugar (Combobox)
Referencia (Edit)
lo que estoy pensando hacer es crear en delphi un form igual con esos datos y lo que quiero saber es si puedo conectar todos esos campos con la tabla de excel o Access y a la vez con mi base de datos interbase (Ibexpert) y como dice usted hacer un bucle en donde tome toda la informacion de esos campos de la tabla en excel y pasar a la tabla existente de la base de datos sin necesidad de estar escribiendo esos campos con un boton de crear
Pienso poner estos campos.

Cita:

Fecha Contrato (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
TIPO PERSONA (dblookupCombobox)
Documento Identificacion (dblookupCombobox)
Apellido Paterno (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
Apellido Materno (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
Primer Nombre (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
Segundo Nombre (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
Estado Civil (dblookupcombobox)
Zona (en donde vive) (dblookupCombobox)
Departamento (dblookupCombobox)
Provincia (dblookupCombobox)
Distrito (dblookupCombobox)
Lugar (dblookupCombobox)
Referencia (Edit) no se puede conectar a base de datos o (DBEdit) que si se puede conectar a BD
:D:D

Casimiro Notevi 18-08-2017 01:01:44

Cada vez lo complicas y nos confundes más. Yo ya no entiendo lo que tienes, lo que quieres, lo que necesitas, ni nada...

ClaraMaria 18-08-2017 01:33:43

Cita:

Empezado por Casimiro Notevi (Mensaje 520390)
Cada vez lo complicas y nos confundes más. Yo ya no entiendo lo que tienes, lo que quieres, lo que necesitas, ni nada...

Disculpen por todas las confusiones y por molestar mucho o por ser un poco pesada.
Bueno le explico al usar varias formas de importar no me funciono entonces opte por una aplicación en delphi okey, el sistema que uso para llenar los clientes a la base de datos tiene estos campos en lo cual se pone todos la informacion
Cita:

Nombre:Fecha Contrato / (Tipo del campo es un Edit) Este Edit muestra la fecha actual como default pero también se puede editar a cualquier fecha
Nombre:Tipo Persona / (Tipo del campo es un Combobox)
Nombre: Documento Identificación / (Tipo del campo es un Combobox)
Nombre: Apellido Paterno / (Tipo del campo es un Edit)
Nombre:Apellido Materno / (Tipo del campo es un Edit)
Nombre:Primer Nombre / (Tipo del campo es un Edit)
Nombre:Segundo Nombre / (Tipo del campo es un Edit)
Nombre:Estado Civil / (Tipo del campo es un Combobox)
Nombre:Zona / (Tipo del campo es un Combobox)
Nombre:Departamento / (Tipo del campo es un Combobox)
Nombre:Provincia / (Tipo del campo es un Combobox)
Nombre:Distrito / (Tipo del campo es un Combobox)
Nombre:Lugar / (Tipo del campo es un Combobox)
Nombre:Referencia / (Tipo del campo es un Edit)
Ahora en la tabla de Excel o Access tengo también los mismos campos con toda la informacion que quiero pasar a la tabla de mi base de datos que ya existe, entonces estoy pensando crear los mismos campos para que el bucle que usted me dice haga la función de cojer todos esos campos de la tabla de (Excel o Access) y lo pase a la tabla que ya existe en la base de datos. (cada campo que esta en Excel o Access con su respectivo campo de los componentes ya mencionados).
Ejemplo:
Los datos de la Tabla de Excel o Access que tiene los campos Apellido Paterno, Apellido Materno, Nombre haga la función de registrar en el mismo campo que tiene la Aplicación para que cuando pase a la base de datos (interbase-Ibexpert) se registre en el campo que corresponde igual que los demás campos.
Nota:
Para eso también se estaría conectando ADOConnection a Excel o Access y IBDatabase a interbase de esa forma primero se lee los datos que estan en (excel o Access) y pasarlos a la base de datos de interbase que también esta conectado.


La franja horaria es GMT +2. Ahora son las 17:58:03.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi