Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 05-12-2007
Avatar de jzginez
jzginez jzginez is offline
Miembro
 
Registrado: sep 2003
Ubicación: Puebla, México
Posts: 247
Poder: 21
jzginez Va por buen camino
ejecutar varios insert a la ves

Hola amigos estoy usando Delphi 7, FireBird 2 y las FIBPlus. Estoy haciendo un programa para migrar de una base a otra, tabla por tabla y campo por campo por si no se llaman igual siempre que sean del mismo tipo (aun esta en pañales el sistema ).
en la parte básica que llevo genero varias lineas insert p/e:
Código SQL [-]
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (0, 'inicial', Null, 'inicial', 'inicial', Null, Null, Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (1, 'BRAVO AUTOMOTRIZ S.A. DE C.V.', 'BAU -831123-T86', 'BLVD. MIGUEL ALEMAN Y MONTES DE OCA', 'BLVD. MIGUEL ALEMAN Y MONTES DE OCA', 'COSAMALOAPAN, VER.', 'SRA. ESTELA BRAVO ACOSTA', '288-20142', '288-21718', '288-22199'); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (2, 'CIA. AGRICOLA GANADERA DE TABASCO, S.A. DE C.V.', 'AGT -921219-5W5', 'AVENIDA H. COLEGIO MILITAR Nø 108, COLONIA  ATASTA', 'AVENIDA H. COLEGIO MILITAR Nø 108, COLONIA  ATASTA', 'VILLAHERMOSA, TABASCO', 'SRITA. RITA', Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (3, 'CIA. AZUCARERA INDEPENDENCIA, S.A. DE C.V.', ' AIN-960314-960', 'BLVD. MANUEL AVILA CAMACHO S/N', 'BLVD. MANUEL AVILA CAMACHO S/N', 'VILLA INDEPENDENCIA, VER.', Null, Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (4, 'ASOC. LOCAL DE CA¥EROS CNPR INGENIO LA GLORIA', '    -      -', 'DOMICILIO CONOCIDO: "INGENIO LA GLORIA"', 'DOMICILIO CONOCIDO: "INGENIO LA GLORIA"', 'MPIO. DE URSULO GALVAN, VER.', Null, Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (5, 'SOC. VENUSTIANO CARRANZA, S.A. DE C.V.', '    -      -', 'DOM. CONOCIDO POBLADO C23, PLAN CHONTALPA', 'DOM. CONOCIDO POBLADO C23, PLAN CHONTALPA', 'CARDENAS, TAB.', Null, Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (6, 'AUTOTRACTORES DE MORELOS, S.A. DE C.V.', ' ATM-730612-7P4', 'AV. REFORMA NO. 205 COL. EMILIANO ZAPATA', 'AV. REFORMA NO. 205 COL. EMILIANO ZAPATA', 'CUAUTLA, MOR.', Null, Null, Null, Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (7, 'TRACTORMAYA, S. A. DE C.V.', ' TRA-880107-HW4', 'AV. RUIZ CORTINES ESQ. DO¥A FIDENCIA', 'AV. RUIZ CORTINES ESQ. DO¥A FIDENCIA', 'VILLAHERMOSA, TABASCO', 'SR. MIGUEL ANGEL CORTES', '93 - 12013', '142670', Null); 
Insert into CLIENTES (ID, NOMBRE, RFC, DIRECCION, COLONIA, LOCALIDAD, REPRESENTANTE, TELEFONO_1, TELEFONO_2, FAX) values (8, 'ING. EDUARDO GALVAN CARPINTERO', '    -      -', 'AV. BENITO JUAREZ Nø 19,  MPIO. DE EMILIANO ZAPATA', 'AV. BENITO JUAREZ Nø 19,  MPIO. DE EMILIANO ZAPATA', 'MORELOS', Null, Null, Null, Null); 
commit;
.......

este código lo asigno ya sea a un pFIBQuery, pFIBStoredproc o a un pFIBUpdateObject y en todos estos al intentar ejecutar las sentencias me marca error de sintaxis en la linea 2 columna 1 la sentencia INSERT, si copio todas estas sentencias a ibexpert y las ejecuto funciona de forma correcta.

Alguien me pude decir como hacer que delphi ejecute todas las lineas seguidas y no tener que ejecutar linea por linea.

Gracias

p.d. encontré este tema en el foro pero esa estructura del insert no funciona en firebird
__________________
Espero poder seguir exprimiéndote el cerebro 8)
Jorge Zamora Ginez
Puebla, Pue. México

Última edición por jzginez fecha: 05-12-2007 a las 20:20:40. Razón: ampliación de lo escrito
Responder Con Cita
  #2  
Antiguo 05-12-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Echa un visual al FTp del club, hay una herramienta para migrar de paradox a firebird, quizás te sirva.

PD: Necesitas usar un FIBScript (debe llamarse así) que si permitirá varias instrucciones.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #3  
Antiguo 05-12-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 21
AzidRain Va camino a la fama
Yo hice alguna vez una aplicación similar pero de DBF a MySQL. Yo lo hice utilizando las caracteristicas de importacion de MySQL (Insert from local) pasandole un archivo de texto plano delimitado por comas y la velocidad que se adquiere es muy superior a hacer un insert por cada registro. No se si FB tenga algo similar, espero que si.. Con este enfoque pasaba 20 000 a 30000 registros en 1 minuto a lo mucho.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #4  
Antiguo 05-12-2007
Avatar de jhonny
jhonny jhonny is offline
Jhonny Suárez
 
Registrado: may 2003
Ubicación: Colombia
Posts: 7.058
Poder: 30
jhonny Va camino a la famajhonny Va camino a la fama
En estos casos siempre uso el DataPump, ya que hay casos en los que hay que respetar las llaves foreneas de la base de datos y estos programas ya tienen en cuenta ese tipo de cosas.
__________________
Lecciones de mi Madre. Tema: modificación del comportamiento, "Pará de actuar como tu padre!"

http://www.purodelphi.com/
http://www.nosolodelphi.com/
Responder Con Cita
  #5  
Antiguo 06-12-2007
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 28
jachguate Va por buen camino
Si queres hacerlo por código, te comento que los componentes Query solamente envían una instrucción al servidor.

Lo que te tocaría es enviar al servidor sentencia por sentencia, suponiendo que todas las instrucciones generadas están en una sola línea, es sencillo:

Código Delphi [-]
var
  Insrucciones: TStringList;
begin
  Instrucciones := TStringList.Create();
  try
    Instrucciones.Read
    for I:= 0 to Instrucciones.Count - 1 do
    begin
      Query1.SQL.Text := Instrucciones[i];
      Query1.ExecSQL;
    end;
  finally
    Instrucciones.Free;
  end;

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Tiempos al ejecutar tquery.insert rmendigu Conexión con bases de datos 2 12-03-2007 16:10:39
Varios INSERT en la misma línea. IPQ Firebird e Interbase 2 15-06-2006 22:07:21
Con delphi Insert en Firebird varios registros desde otra tabla lasweb Conexión con bases de datos 3 04-04-2005 20:58:26
Ejecutar varios insert en MYSQL Igna Conexión con bases de datos 8 13-04-2004 15:55:31
Como hacer un insert de varios registros fredy_boots SQL 2 25-11-2003 14:55:37


La franja horaria es GMT +2. Ahora son las 12:54:36.


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
Copyright 1996-2007 Club Delphi