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 25-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
A que te refieres con el anterior...

Generalmente cuando insertas un registro nuevo, lo haces con el máximo código de la tabla... entonces el anterior al nuevo será MAX(Cod_Cli) ya que el nuevo es MAX(Cod_Cli) + 1 (aunque uses un generador supongo).

Cita:
Siguiendo el estilo de maeyanes:
Código SQL [-]
insert into cliente (nombre, direccion, telefono)
select nombre, direccion, telefono from cliente
where cod_cli = (select max(cod_cli) from cliente) /* el anterior */
Te devolverá un nuevo registro con los datos del último registro.

Si sabes cual es el código del registro anterior ...
Código SQL [-]
insert into cliente (nombre, direccion, telefono)
select nombre, direccion, telefono from cliente
where cod_cli = 345 /* por ejemplo ese es el anterior */

Especifica a que te refieres con el anterior... y podremos ayudarte mejor.

Última edición por hector.roma fecha: 25-07-2005 a las 13:47:46. Razón: Correción
Responder Con Cita
  #2  
Antiguo 25-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Thumbs down

me refiero a eso, con el ultimo, exactamente, has intepretado bien,, pero te comento que este programa ya estaba hecho, y si se elimina un cliente reaprovecha el cod de cliente!! cosa muy mala! entonces por eso no puedo usar un max... porque el nro de cliente mas alto no quiere decir el ultimo!

imaginate que la base de datos es de mas de 2 gb de info..
Responder Con Cita
  #3  
Antiguo 25-07-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
El SQL para inserción que puse, si te fijas bien, no asigna el código de cliente puesto que en tu primer mensaje especificaste que no había problema en eso...
Cita:
cod_cli=2 esto no tengo problemas uso el generator
...lo único que hace la sentencia es tomar los demás datos del último registro, que en el caso sería el registro anterior...
Cita:
(o sea,, quiero utilizar los mismos datos exatos, quiero copiarlos del registro anterior...)
como hago para que cuando hago el insert,,, en mis values le diga "que escriba lo del registro anterior??
Así que no veo el porque no puedas usarlo.


Saludos...
Responder Con Cita
  #4  
Antiguo 25-07-2005
Avatar de hector.roma
hector.roma hector.roma is offline
Miembro
 
Registrado: jul 2005
Ubicación: a caballo entre Galicia y Portugal
Posts: 58
Poder: 19
hector.roma Va por buen camino
Algo se me escapa...

Tienes los datos del cliente anterior en un registro...
  • si está en memoria es asignarlos a un nuevo cliente y listo. Para ello puedes usar delphi, stored procedures, o lo que quieras.
  • Que el registro no está en memoria, entonces tienes que conocer la llave de tu registro, recuperar los datos que te interesan y asignarselo de la misma forma que antes.
  • Que la llave es ese número entero que no identifica nada, entonces
    Código SQL [-]
    SELECT Cod_Cli FROM Clientes WHERE Nombre=@Nombre AND ...
    e introduces el resto de parámetro que identifican de forma única tu cliente. Cuando lo hagas, tendras el Cod_Cli que te interesa, y las soluciones anteriores te vadrán.
  • Ninguna de estas opciones te vale ... no nos dejes hacer suposiciones y comenta claramente tu problema, procurando no olvidarte de nada.
En cualquier caso seguiremos aquí para ayudar...
Responder Con Cita
  #5  
Antiguo 26-07-2005
Avatar de marceloalegre
[marceloalegre] marceloalegre is offline
Miembro Premium
 
Registrado: abr 2005
Ubicación: Mar del Plata - Argentina
Posts: 448
Poder: 20
marceloalegre Va por buen camino
Cool

Ya entendí la idea, les agradesco muchisimo tanto a Marcos como a Hector por la paciencia en la explicacion del tema es cuestion.

ya esta todo funcionando..

Muchas gracias!!
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 04:47:15.


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