FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Intercambio de datos entre 2 DB Interbase
Hola.
Estoy haciendo un programa que actualice datos entre dos DB's en interbase. Por ejemplo para altas nuevas. Lo que yo hago es que tengo una consulta en un TSqlQuery(Lazarus) de la db origen, una vez obtenidos los registros nuevos. creo una consulta de alta en un TSqlQuery de destino y registro por registro creo el string con el alta. Nunca he probado a usar los Parameter y no se si me ahorrarían tiempo y código, ya que son varias tablas con altas y modificaciones. ¿ como se haría ? o ¿ como sería la mejor forma de sincronizar por ejemplo las altas ? Última edición por Cecilio fecha: 18-09-2008 a las 13:20:13. Razón: concretar la pregunta |
#2
|
||||
|
||||
Si las tablas son iguales en su estructura, te ahorrarías algo de código en la asignación de los parámetros.
En la tabla origen haces el En la tabla destino haces el update luego haces un for en delphi/lazarus que asigne los parámetros Código:
{pseudocodigo} for i := 1 to ParamCount do TDestino.Param[i] := TOrigen.Param[i]; Última edición por duilioisola fecha: 18-09-2008 a las 13:32:17. |
#3
|
||||
|
||||
Tambien puedes hacer un procedimiento que se encargue de ver cuales son los campos de una tabla y rellene los parámetros
En las tablas : - RDB$RELATIONS están las tablas - RDB$RELATION_FIELDS estan los campos. - RDB$INDICES contiene los indices y PKs Enlace para averiguar PK Enlace para averiguar campos de una tabla Enlace para listar tablas |
#4
|
|||
|
|||
Cita:
Las dos tablas son identicas en ambas DB's pero solo se usan unos cuantos campos. Mi nueva duda: Defino el insert con los campos. ¿ como paso un registro de la tabla origen a la tabla destino ? ¿ con el for que me has puesto de ejemplo con los parameters? Me Explico: Tengo dos TSqlQuery: TOrigen y TDestino. Paso 1. en Torigen hago el Select campo1, compo2,campo2 from tabla where nuevo=1 Paso 2. Pensaba que tras hacer el Select, fijaba la propiedad sql del Torigen con el Insert. Paso 3. Pensaba tambien que En TOrigen, fijaba la base de datos de destino y la transacción y ejecutaba ExecSql. Con lo cual todos los registros que hay en Torigen se insertaban en la db de destino. Última edición por Cecilio fecha: 18-09-2008 a las 16:40:27. Razón: explicación más detallada |
#5
|
||||
|
||||
Esto es un ejemplo.
Habría que : - meter algunas cosas en un bloque try .. .except. - hacer comprobaciones de que no haya fallado el abrir la base de datos Podrías tomar el ejemplo y enviarle como parámetros, la tabla y la lista de los parámetros. Con esto generarías el select y el insert.
Última edición por duilioisola fecha: 18-09-2008 a las 17:32:13. |
#6
|
|||
|
|||
Muchas Gracias.
Mientras me escribias el ejemplo yo he escrito este procedimiento:
Ni que decir tiene que su ejemplo es mucho mejor y voy a estudiarlo a fondo, porque hay muchas cosas en él que desconozco. |
#7
|
||||
|
||||
Ante cualquier duda que tengas, será un placer ayudarte (el resto del foro y yo).
Saludos |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Diferencias entre Firebird e Interbase | David | Firebird e Interbase | 6 | 28-04-2007 16:14:47 |
Intercambio Electronico de Datos (EDI) | cacuna | Varios | 0 | 08-03-2007 01:31:43 |
Diferencias entre Firebird e Interbase | mieltxo | Firebird e Interbase | 2 | 11-02-2006 22:28:07 |
Como intercambio información entre formularios | pyanqn | Varios | 8 | 03-11-2005 17:04:13 |
Compatibilidad entre Interbase y SQLab | Ana Tudela | Firebird e Interbase | 0 | 09-05-2005 08:50:56 |
|