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)
-   -   Ejecutar varios insert en MYSQL (https://www.clubdelphi.com/foros/showthread.php?t=8926)

Igna 06-04-2004 17:04:20

Ejecutar varios insert en MYSQL
 
Hola.

Estoy haciendo un programita en Delphi que ataca una BBDD mysql por internet. Lo que hace esta aplicación, es chequear un BBDD Oracle (local), e inserta los clientes nuevos que se han metido en dicha BBDD (todos aquellos que tienen su campo nuevo='T'). Además, después tambien actualiza otras tablas, pero el funcionamiento es el mismo.

La aplicación funciona, pero el problema es el tiempo. Primero ejecuto una query para saber que clientes nuevos hay (aquí no hay problema), y después voy uno por uno añadiendolos en la BBDD mysql (aquí es donde tengo el problema). No se si mi forma de plantear el programa es la idónea. He intentado juntar todos los insert en un mismo Query, para optimizar la insercción, pero me da error (supongo que no se podrá hacer).

Agradecería un poco de orientación, si es que a alguien se le ocurre una manera mejor para optimizar mi aplicación.

Un saludo.

roman 06-04-2004 17:57:35

En estos momentos no recuerdo la sintaxis pero seguro que se pueden insertar múltiples registros en MySql como puedes consultar aquí. También te puede interesar el comando load data infile que te permite insertar múltiples registros tomados de un archivo.

// Saludos

Igna 07-04-2004 09:22:25

Gracias por las respuestas.

Al final me he bajado de torry.net los componenetes Zeos (no los conocía, pero después de mirar muchos mensajes en este foro, decidí probarlos), y uno de ellos (ZSQLProcessor) es justamente lo que estaba buscando. Ahora mi aplicación va mucho más rápida, y es mucho más eficiente.

Gracias de nuevo, y un saludo.

roman 07-04-2004 09:33:52

¿Podrías poner un ejemplo de uso? Sería muy interesante para que los demás sepan usarlo ya que como viste Zeos es lo más usado para acceder a MySql.

// Gracias

Nadie 08-04-2004 17:17:43

para insertar multiples registros con un solo insert la sintaxis es asi "insert into tabla (columna1, columna2, columna3) values ('dato1','dato2','dato3') ('dato4','dato5','dato6') ('dato7','dato8','dato9')....... ahi en vez de hacer un insert haces tres (o mas) y se te redice el tiempo de espera a un tercio

roman 08-04-2004 22:23:23

Gracias Nadie, sabía que esta era la sintaxis aunque no la recordaba por completo. Lo que no me queda claro es cómo interviene el ZSqlProcessor ya que la consulta tal como la pones se puede escribir directo en un ZQuery.

// Saludos

Nadie 08-04-2004 22:33:09

ni idea... no uso esos componentes, ya se que deberia pero me da fiaca instalarlos :P

Igna 13-04-2004 09:17:35

Siento responder tan tarde, pero no he leído las respuestas hasta hoy.

Yo lo hacía con varios inserts, en el ZSQLProcessor, en su propiedad script, escribía en tiempo de ejecución todos los insert, y depués lo ejecutaba. No sabía que se podía hacer como comenta Nadie, pero será cuestión de probarlo para ver si aumenta todavía más el rendimiento. De todas formas, también hay varias sentencias update, con lo que supongo que necesitaré el componente ZSQLProcessor (este componente me permite poner varias sentencias SQL agrupadas, y ejecutarlas después a la vez). Si el ZQuery es igual que los componentes que me bajé antes (no recuerdo su nombre ahora mismo), no te permitiría ejecutar varias sentencias a la vez (tampoco te deja un IBQuery, creo).

Gracias de nuevo por las respuestas, y un saludo.

roman 13-04-2004 15:55:31

Cita:

Empezado por Igna
No sabía que se podía hacer como comenta Nadie

Pues mira que es raro. Es precisamente lo que te indique desde la primera respesta habiéndote incluso puesto un enlace directo a la parte del manual donde se describe la sintaxis.

// Saludos


La franja horaria es GMT +2. Ahora son las 07:14:04.

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