Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MySQL
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2007
marcoev marcoev is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Nogales, Sonora, Mex.
Posts: 57
Poder: 17
marcoev Va por buen camino
Como puedo insertar varios registros con una instruccion de SQL

Existe alguna instruccion para que pueda ingresar varios registros a una tabla de MySQL?

Lo que pretendo es que desde una forma de delphi, el usuario diga voy a ingresar folios desde el 1 al 1000, estos folios se anteceden con una letra, quedarian algo asi como X0001, X0002,... etc.

lo mas simple seria hacerlo con un loop y estarlos ingresando directamente al componente de tQuery, pero no es lo que me gustaria hacer.

Alguna sugerencia?
__________________
saludos a todos y gracias por compartir sus conocimientos y experiencias... ;-)
Responder Con Cita
  #2  
Antiguo 24-01-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
NULL
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 16
AzidRain Va por buen camino
Me parece que no tienes de otra mas que hacer un loop y poner adentro un INSERT ...realmente lo hace muy rápido asi que no creo que haya mucho problema.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #3  
Antiguo 24-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.239
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
MySql acepta inserción de múltiples registros en una sóla consulta:

Código SQL [-]
insert into personas
(id, nombre)
values
  (1, 'pedro'),
  (2, 'juan'),
  (3, 'maría')

// Saludos
Responder Con Cita
  #4  
Antiguo 24-01-2007
marcoev marcoev is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Nogales, Sonora, Mex.
Posts: 57
Poder: 17
marcoev Va por buen camino
muchas gracias Roman, voy a probar tu sugerencia.
__________________
saludos a todos y gracias por compartir sus conocimientos y experiencias... ;-)
Responder Con Cita
  #5  
Antiguo 24-01-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
NULL
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 16
AzidRain Va por buen camino
De todas formas no te salvas del loop para construir la sentencia antes de ejecutarla. En este caso hay que crear los valores "X0001", "X0002", etc. y meterlos directamente en la setencia.
__________________
AKA "El animalito" ||Cordobés a mucha honra||
Responder Con Cita
  #6  
Antiguo 24-01-2007
marcoev marcoev is offline
Miembro
NULL
 
Registrado: may 2003
Ubicación: Nogales, Sonora, Mex.
Posts: 57
Poder: 17
marcoev Va por buen camino
si, de eso ya me di cuenta, del loop no me salvo.

pero una cosa, normalmente para no tener problemas con los tipos de datos, utilizo los parametros, mas que nada, con las fechas y campos blob, alguien me podria decir como validaria los campos tipo fecha en la sentencia de SQL?
__________________
saludos a todos y gracias por compartir sus conocimientos y experiencias... ;-)
Responder Con Cita
  #7  
Antiguo 24-01-2007
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.239
Poder: 10
roman Tiene un aura espectacularroman Tiene un aura espectacular
Yo no entiendo a qué te refieres con validar los campos dentro de la sentencia, pero tampoco parece tener que ver mucho con el tema del hilo. ¿Por qué no abres uno nuevo?

// Saludos
Responder Con Cita
  #8  
Antiguo 24-01-2007
Avatar de AzidRain
[AzidRain] AzidRain is offline
Miembro Premium
NULL
 
Registrado: sep 2005
Ubicación: Córdoba, Veracruz, México
Posts: 2.914
Poder: 16
AzidRain Va por buen camino
Citando el código de Roman pero usando paramtros:


Código SQL [-]
insert into personas
(id, nombre)
values
  (:id, :nombre')

Código Delphi [-]
Uses DateUtils;
Procedure PruebaSQL;
var  UnQuery:TZQuery; // Yo uso Zeos pero es lo mismo para otros motores
Begin
  unQuery := TZQuery.Create(nil);
  Try
   With UnQuery Do
   Begin
     Connection := MyConeccion;  // Asumo que ya esta activa la conexion
     SQL.Add('insert into personas');  // Prepara el query     SQL.Add(' (id, unafecha)');
     SQL.Add(' values  (:id, :fecha)');
 
     //Fijar parametros
     for c:=1 to 1000 Do
     Begin
       ParamByName('id').AsString := format('X%d',[c]); //Creamos el folio en formato X1, X2, etc.
       ParamByName('fecha').AsDateTime := Today; //Usamos la fecha actual
                                                                   // Pero puedes usar cualquier
                                                                    // Valor TDate o TDateTime
   
        ExecSQL; //Insertar el registro (el folio cambia con cada iteración)
     end;
    end; 

  Finally
    unQuery.free;
  end;
end;
Como puedes ver al poner el parametro fecha usando AsDateTime Delphi se encarga de convertir el dato en un valor de fecha adecuado para el motor de base de datos. Obviamente antes de fijarlo nos tenemos que asegurar que le estemos pasando una fecha válida. Si usas un control o edit para obtener la fecha, pues usamos TDateTimePicker que solito nos devuelve siempre una fecha.
__________________
AKA "El animalito" ||Cordobés a mucha honra||

Última edición por AzidRain fecha: 24-01-2007 a las 22:57:22.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
como puedo ejecutar alguna instruccion cuando le doy aceptar a un mensaje confirm() Shidalis PHP 2 09-10-2006 22:33:42
como pasar varios registros desde el interactive sql de ibconsole.. uper Firebird e Interbase 2 30-01-2006 18:28:09
Como insertar registros con sql? newbery Firebird e Interbase 1 10-01-2006 14:32:30
¿cómo puedo manejar los datos de una consulta si son varios registros? nuri SQL 3 18-07-2005 13:02:43
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 01:07:51.


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