Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-06-2004
Tama Tama is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
Tama Va por buen camino
inserciones de multiples filas

hola a todos:

es posible crear inserciones de varias filas en una tabla en SQL-server mediante una sola instruccion SQL, sin utilizar ADO?

gracias.
Responder Con Cita
  #2  
Antiguo 07-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si!
Puedes hacer un insert de un select por ejemplo.

Código SQL [-]
INSERT INTO TABLA (CAMPO1, CAMPO2, CAMPO3...)
SELECT CAMPO1, CAMPO2, CAMPO3... FROM TABLA2

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #3  
Antiguo 07-06-2004
Sirkius Sirkius is offline
Miembro
 
Registrado: jun 2004
Posts: 83
Poder: 20
Sirkius Va por buen camino
Umhh... interesante. Y se podría hacer poniendo de alguna forma los valores en la sentencia?? (por curiosidad mas que nada...)
Responder Con Cita
  #4  
Antiguo 07-06-2004
Avatar de guillotmarc
guillotmarc guillotmarc is offline
Miembro
 
Registrado: may 2003
Ubicación: Huelva
Posts: 2.638
Poder: 23
guillotmarc Va por buen camino
Hola.

¿ Te refieres a esto ?

Código:
INSERT INTO TABLA (CAMPO1, CAMPO2, CAMPO3...)
VALUES (:CAMPO1, :CAMPO2, :CAMPO3, ...)
Saludos.
__________________
Marc Guillot (Hi ha 10 tipus de persones, els que saben binari i els que no).
Responder Con Cita
  #5  
Antiguo 08-06-2004
Tama Tama is offline
Registrado
 
Registrado: abr 2004
Posts: 9
Poder: 0
Tama Va por buen camino
Bueno, no es exactamente lo que estoy buscando. Me explico..., cuento con un grán número de datos que recibo por puerto serie y necesito probar si enviando un conjunto de ellos al servidor sql, éste en su total consume menor o igual tiempo que si le envío registro por registro, ya que el tiempo de envío al servidor entre un registro y el siguiente suele ser inferior a 1 ó 2 segundos.

Por lo que he visto hasta ahora, parece que es necesario que este tipo de inserts, se deben realizar desde un archivo de texto o desde una consulta previa, pero... ¿desde datos contenidos en memoria...?

saludos.
Responder Con Cita
  #6  
Antiguo 08-06-2004
Avatar de cbrrr
cbrrr cbrrr is offline
Miembro
 
Registrado: jun 2004
Posts: 57
Poder: 20
cbrrr Va por buen camino
Hola Tama

Si quieres hacer inserts de valores que no salgan de una sentencia Select, no te va a quedar más remedio que preparar un script con todas las sentencias y lanzar ese script mediante algún componente de acceso a tu motor que te permita tal característica o bien lanzar una a una las sentencia insert desde un componente Query.

Espero que te sirva
__________________
Si no tienes algo que decir más importante que el silencio, cállate
Responder Con Cita
  #7  
Antiguo 08-06-2004
Avatar de delphi.com.ar
delphi.com.ar delphi.com.ar is offline
Federico Firenze
 
Registrado: may 2003
Ubicación: Buenos Aires, Argentina *
Posts: 5.932
Poder: 27
delphi.com.ar Va por buen camino
Si quieres ahorrar tiempo te recomiendo armar un único SQL, hacer u prepare, y ciclar cargando los valores de los registros por parámetros y ejecutándolo. La teoría dice que esto sería lo mas rápido, ya que el motor se evitaría de parsear, evaluar y compilar el SQL para cada insert.
Por otro lado, fíjate que tu pregunta original solo ha servido para que deliremos un poco, te recomiendo formular mejor tus futuras preguntas, y te sugiero que leas la Guía de Estilo.

Saludos!
__________________
delphi.com.ar

Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla.
Responder Con Cita
  #8  
Antiguo 08-06-2004
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Me parece que 1 o 2 segundos debiera ser un tiempo sobrado con cualquier servidor decente para insertar un dato. (De hecho una sola sentencia insert debiera ejecutarse en unos cuantos milisegundos).

Lo que te ha dicho delphi.com.ar es muy importante, y puede ayudarte a reducir "costos" de las inserciones... pero si aún asi es insuficiente, y despues de un rato de datos continuos hay un momento de respiro... podes valerte de tus componentes de acceso, que seguramente tendrán alguna forma de manejar datos en cache. De esta forma vas haciendo insert's sobre el cache, y una vez haya tiempo de "descanso" en la llegada de información, te encargas de aplicarlos a la BD.

Ojo, que esto tiene el riesgo de que los datos están solo en la memoria de la máquina cliente, con lo que con un corte de energia o fallo del programa se perderían irremediablemente.

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


La franja horaria es GMT +2. Ahora son las 14:51:20.


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