Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Firebird e Interbase (https://www.clubdelphi.com/foros/forumdisplay.php?f=19)
-   -   Pasar datos de IBexpert a SQL (https://www.clubdelphi.com/foros/showthread.php?t=87582)

maxzama 26-01-2015 14:51:18

Pasar datos de IBexpert a SQL
 
Hola.

Quiero saber, como puedo madar datos de IBexpert a SQL(base de dato 'Nuve').

Se esta utilizando:

-Firebird 2.5
-Delphi xe2

aqui le muestro un codigo, el cual solo envia de SQL a SQL o IB a IB. Por su forma de como esta diseñado, claro. pero e estado buscando hacer algo parecido. pero no encuentro un resultado, que me haga de SQL a IB o viceversa.

Codigo:

Código Delphi [-]
if application.MessageBox('DESEA GUARDAR?','guardar un Registro',
     MB_ICONQUESTION OR MB_YESNO) = ID_YES then
       begin
           Dmodulo.ASISTENCIA_COBRAR.Close;
           Dmodulo.ASISTENCIA_COBRAR.SQL.Text:='insert into ASISTENCIA_COBRAR select * from ASISTENCIA_Madre';
           Dmodulo.ASISTENCIA_COBRAR.ExecSQL;
               Dmodulo.ibt.Commit;  // ibt ibtrasaction
               Dmodulo.ASISTENCIA_COBRAR.SQL.Clear ;
               Dmodulo.ASISTENCIA_COBRAR.SQL.Add('select * from ASISTENCIA_COBRAR ');
               Dmodulo.ASISTENCIA_COBRAR.Open;

               Dmodulo.ASISTENCIA_Madre1.selectSQL.clear;
               Dmodulo.ASISTENCIA_Madre1.selectSQL.Text:=('delete from ASISTENCIA_Madre');
               Dmodulo.ASISTENCIA_Madre1.ExecSQL;
               Dmodulo.ASISTENCIA_Madre1.selectSQL.clear;
               Dmodulo.ASISTENCIA_Madre1.selectSQL.Text:=('select * from ASISTENCIA_Madre');
               Dmodulo.ASISTENCIA_Madre1.Open;
               Dmodulo.ibt.Commit;

           SHOWMESSAGE('A sido Insertado');
       end;

Espero su respuesta, pr fvr y grcs...

Casimiro Notevi 26-01-2015 15:17:45

Cita:

Empezado por maxzama (Mensaje 488123)
Quiero saber, como puedo madar datos de IBexpert a SQL(base de dato 'Nuve').

Ibexpert es un "manejador de bases de datos firebird e interbase.
SQL es un lenguaje,
¿Qué quiéres exactamente?

Cita:

Empezado por maxzama
pr fvr y grcs...

¿Se te ha estropeado el teclado?

Nuestra guía de estilo. gracias.

maxzama 26-01-2015 15:27:35

Código Delphi [-]
Lo que quiero, es pasar los datos ya guardados. En la base de dato que esta creado en IBexpert, a la base de dato ya creado en phpadmin SQL.
----

(IBexpert) es donde tengo creado mis base de datos.

estoy utilizando firebird 2.5, para hacer la conección.

Utilizando el programa Delphi xe2..

En delphi xe2, estoy utilizando la libreria zeoslib(para la coneccion SQL), y la libreria InterBase(para la coneccion IBexpert).

Casimiro Notevi 26-01-2015 15:49:00

A ver, ibexpert es un manejador de bases de datos firebird e interbase.
SQL es un lenguaje de consultas a bases de datos, ya sea firebird, interbase, mysql, postgresql, ms sql server, oracle, etc.

maxzama 26-01-2015 15:59:14

tengo dos base de datos que contienen los mismo campos:

1) En IBexpert

2) PHPAdmin


Y quiero pasar los datos de una base de dato a la otra base de dato.

Disculpa que no me hecho entender.

Casimiro Notevi 26-01-2015 16:15:01

Por favor, lee nuestra guía de estilo, gracias.

No repitas hilos. Tienes la misma pregunta en varios hilos distintos, los he borrado.

Te vuelvo a repetir que ni ibexpert ni phpadmin son bases de datos.
¿No lees lo que te escribo?

maxzama 26-01-2015 16:23:19

Esta informacion lo e escrito, en mi otro hilo. donde estoy tratando el mismo tema.

se que ibexpert y phpadmin no son base de datos. Sino es donde tengo creado mi base de datos o donde se encuentra mi base de dato...

No se si me hecho entender. espero tu respuesta, por favor y gracias.

Casimiro Notevi 26-01-2015 16:26:05

Cita:

Empezado por maxzama (Mensaje 488136)
Esta informacion lo e escrito, en mi otro hilo. donde estoy tratando el mismo tema.

Precisamente, ese es el problema, ¿no lees la guía de estilo? No puedes tener el mismo tema en varios hilos distintos.

Cita:

Empezado por maxzama
se que ibexpert y phpadmin no son base de datos. Sino es donde tengo creado mi base de datos o donde se encuentra mi base de dato...
No se si me hecho entender. espero tu respuesta, por favor y gracias.

A ver, de nuevo, con ibexpert y phpadmin manejas bases de datos, las puedes crear, editar, eliminar, etc. ¿Pero tú qué quieres hacer? ¿y con qué bases de datos de qué tipo?

Casimiro Notevi 26-01-2015 16:29:02

Y deja ya de seguir creando hilos iguales. Al próximo serás sancionado.
Saludos.

maxzama 26-01-2015 16:35:20

A ver si te entiendo.

tengo dos base de datos que contienen los mismo campos y las base de datos estan creadas en:

1) En IBexpert

2) PHPAdmin


Y quiero pasar los datos, de una base de dato a la otra base de dato.

es decir: quiero pasar informacion o lo datos (de la base de dato creado en IBexpert), a la base de dato creada en phpadmin.

// repito tienen los mismo campos. las dos base de datos creadas en diferentes servidores o programa.

Casimiro Notevi 26-01-2015 16:38:29

Cita:

Empezado por maxzama (Mensaje 488139)
tengo dos base de datos que contienen los mismo campos y las base de datos estan creadas en:

1) En IBexpert
2) PHPAdmin

Amigo maxzama, tienes 2 bases de datos iguales, ¿las dos son firebird?

maxzama 26-01-2015 16:47:51

Gracias, no lo sabia.

entoces como paso la informacion de IBexpert a phpAdmin. Atraves de delphi.


ejemplo:
Asi como muestro en este codigo. donde paso los datos de una base dato a otra base de dato. pero este codigo no me sirve pasar dato de IBexpert a phpAdmin.

Código Delphi [-]
Dmodulo.ASISTENCIA_COBRAR.Close;
           Dmodulo.ASISTENCIA_COBRAR.SQL.Text:='insert into ASISTENCIA_COBRAR select * from ASISTENCIA_Madre';
           Dmodulo.ASISTENCIA_COBRAR.ExecSQL;
               Dmodulo.ibt.Commit;  // ibt ibtrasaction
               Dmodulo.ASISTENCIA_COBRAR.SQL.Clear ;
               Dmodulo.ASISTENCIA_COBRAR.SQL.Add('select * from ASISTENCIA_COBRAR ');
               Dmodulo.ASISTENCIA_COBRAR.Open;

Casimiro Notevi 26-01-2015 16:49:47

Cita:

Empezado por Casimiro Notevi (Mensaje 488140)
Amigo maxzama, tienes 2 bases de datos iguales, ¿las dos son firebird?

Responde a esto.

maxzama 26-01-2015 16:59:38

no.

esto es lo que quieres saber:

- firebird : IBexpert (base de dato DIA)

- vertrigo : PHPAdmin (base de dato DIA)

maxzama 26-01-2015 17:36:22

no uno es de firebird y el otro mySQL.

esto lo que querias saber...

maxzama 26-01-2015 17:50:55

Pasar datos de (Firebird a MySQL)
 
Tengo un IBDataset que se conecta con la base de dato firebird

Tengo un ZUpdateSQL que esta conectado a un ZQuery (de la libreria zeoslib), que se conecta con la base de dato MySQL.

Como hago a hora para pasar informacion de firebird a MySQL. Alguna idea, de como tendria que hacerlo en codigo.

duilioisola 26-01-2015 18:07:32

"Nuve" ??? Qué dolor de ojos!!!!
Supongo que habrás querido decir nuBe

Pero bueno... al caso...
Después de 16 mensajes, parece que te has explicado:

Pasar datos de una base Firebird a una base MySQL.

Por un lado tienes que poder conectar a ambas bases de datos. A la base de datos Firebird, no tendrás problemas, porque ya lo haces.
En cuanto a la base de datos MySQL es un poco mas complicado.
Primero tendrás que abrir el puerto 3306 en el servidor MySQL.
Luego tendrás que decirle a MySQL que permita conexiones de fuera, creando un usuario y diciéndole que puede conectarse desde una IP externa.
Una vez tengas esto del lado del servidor, puedes conectar mediante las zeoslib o crear una conexión ODBC hacia esa base.
Finalmente te queda hacer el bucle que lea de una base y escriba en la otra...

Código Delphi [-]
// Abrir datos
QOrigen.Open;
// Abrir destino
QDestino.Open;

// Mientras haya datos, los inserto en destino
while (not QOrigen.EOF) do
begin
   QDestino.Insert;
   QDestino.Field.... := QOrigen.Field... ;
   QDestino.Post;
   QOrigen.Next;
end;

// Cierro Datos
QOrigen.Close;
// Abrir destino
QDestino.Close;

maxzama 26-01-2015 18:07:36

acabo de hacer este codigo:

pero no se como llamo el parametro a travez de un ZUpdateSQL.

Ejemplo: modulo.Dias_M_I.ParamByName('CEDULA').AsString;

Codigo delphi:

Código Delphi [-]
begin
Dmodulo.RegistroMadre2.SQL.Clear ;
Dmodulo.RegistroMadre2.SQL.Add('select * from RegistroMadre ');
DMODULO.RegistroMadre2.Open;

Dmodulo.RegistroMadre2.First;
       while not Dmodulo.RegistroMadre2.Eof do
             begin

                 if DMODULO.RegistroMadre2.FieldByName('NumeroCuenta').AsString>'' then

                 begin
                     Dmodulo.Dias_M_I.SQL.Text:=Dmodulo.Dias_M_I.InsertSQL.Text;
                     Dmodulo.Dias_M_I.ParamByName('CEDULA').AsString:=DMODULO.RegistroMadre2.FieldByName('Cedula').AsStri  ng;
                     Dmodulo.Dias_M_I.ExecSQL;
                     Dmodulo.Dias_M_I.SelectSQL.Text:=('select * from RegistroMadre ');
                     SHOWMESSAGE('A sido Insertado');
                 end;
       Dmodulo.RegistroMadre2.Next;
       end;
       Dmodulo.ibt.Commit;
end;

maxzama 26-01-2015 18:08:23

Gracias, por la corrección [duilioisola].

no avia visto, tu mensaje.

ya estoy utilizando lo siguiente:

Tengo un IBDataset que se conecta con la base de dato firebird

Tengo un ZUpdateSQL que esta conectado a un ZQuery (de la libreria zeoslib), que se conecta con la base de dato MySQL.

duilioisola 26-01-2015 18:46:54

Notas para hacer un poco mas legible tu código:

Cada línea empieza por "Dmodulo."
Esto sugiere que todo este procedimiento debería ser parte del DataModule y no de Form que lo llama.

Código Delphi [-]
begin
   DModulo.InsertarEnMySQL;
end;

proceudre  TDModulo.InsertarEnMySQL;
begin
RegistroMadre2.SQL.Clear ;
RegistroMadre2.SQL.Add('select * from RegistroMadre ');
RegistroMadre2.Open;

RegistroMadre2.First;
       while not RegistroMadre2.Eof do
             begin

                 if RegistroMadre2.FieldByName('NumeroCuenta').AsString>'' then

                 begin
                     Dias_M_I.SQL.Text:=Dias_M_I.InsertSQL.Text;
                     Dias_M_I.ParamByName('CEDULA').AsString:=RegistroMadre2.FieldByName('Cedula').AsString;
                     Dias_M_I.ExecSQL;
                     Dias_M_I.SelectSQL.Text:=('select * from RegistroMadre ');
                     SHOWMESSAGE('A sido Insertado');
                 end;
       RegistroMadre2.Next;
       end;
       ibt.Commit;
end;

Luego además podrías utilizar "with do" para mejorarlo incluso un poco mas:

Código Delphi [-]
proceudre  TDModulo.InsertarEnMySQL;
begin
with RegistroMadre2 do
begin
   SQL.Clear ;
   SQL.Add('select * from RegistroMadre ');
   Open;
   First;
       while not Eof do
             begin
                 if FieldByName('NumeroCuenta').AsString>'' then
                 begin
                     Dias_M_I.SQL.Text:=Dias_M_I.InsertSQL.Text;
                     Dias_M_I.ParamByName('CEDULA').AsString:=FieldByName('Cedula').AsString;
                     Dias_M_I.ExecSQL;
                     Dias_M_I.SelectSQL.Text:=('select * from RegistroMadre ');
                     SHOWMESSAGE('A sido Insertado');
                 end;
       Next;
       end;
       ibt.Commit;
   end;
end;

Supongo además que la sentencia InsertSQL de la tabla DIAS_M_I necesitará más parámetros.
Algo así como "INSERT INTO REGISTRO HIJO (ID, NOMBRE, CEDULA) VALUES (:ID, :NOMBRE, :CEDULA)"
Esos parámetros también deberás asignarlos, o se insertarán como nulos o "vacíos".


La franja horaria es GMT +2. Ahora son las 18:23:59.

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