Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
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 11-06-2010
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 21
Vlady Va por buen camino
Esto lo controlo con triggers para que no se facture a otros clientes, ademas lo debo hacer hacer para tener el consecutivo de los clientes.
Responder Con Cita
  #2  
Antiguo 12-06-2010
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 21
Vlady Va por buen camino
ademas esto no es precisamente para una tabla de clientes, es que el ejemplo lo hice de esta forma, es para una tabla de pedidos y necesito conservar el consecutivo de cada pedido asi borren alguno en cualquier momento, luego renumerar el ID
Responder Con Cita
  #3  
Antiguo 12-06-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pero, si por ejemplo, el pedido es del cliente 100 y borras el cliente 90. Tras la renumeración el cliente 100 ahora será el 99. Y el pedido que era del cliente 100 ahora quedará huérfano o pertenecerá al "nuevo" cliente 100, que antes era el 101.

De todas formas, debes buscar otra forma de hacer eso, no es nada factible, salvo que sea un campo más de la tabla, pero no la clave principal.
Responder Con Cita
  #4  
Antiguo 12-06-2010
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 21
Vlady Va por buen camino
Casimiro Gracias por responder, pero te cuento que esto no es de una tabla de clientes es solo un ejemplo q se me ha ocurrido lo quiero hacer es con una tabla de Pedidos donde la PK no es foranea en ninguna otra tabla o q deseo es q en el momento de eliminar un pedido se reorganicen los numeros de pedidos.
Responder Con Cita
  #5  
Antiguo 12-06-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Pues tendrás que hacerlo con un bucle, por ejemplo, ordenas por nombre (por ejemplo) y luego lo vas recorriendo de principio a fin y le vas poniendo el código que toque.

Algo así:

Código:
query.close;
query.selectsql.text := 'select * from tbclientes order by apellidos, nombre';
query.open;
iNumero := 1;
while not query.eof do
begin
  query.edit;
  query.fieldbyname('codigo').asinteger := iNumero;
  query.post;
  query.next;
  inc( iNumero );
end;
Responder Con Cita
  #6  
Antiguo 12-06-2010
Avatar de Vlady
Vlady Vlady is offline
Miembro
 
Registrado: ago 2005
Posts: 217
Poder: 21
Vlady Va por buen camino
Gracias casimiro pero de esta forma me salta que el ID ya existe y da error de primary key ya existe.
Responder Con Cita
  #7  
Antiguo 12-06-2010
Avatar de Casimiro Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.678
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví Tiene un aura espectacular
Cita:
Empezado por Vlady Ver Mensaje
Gracias casimiro pero de esta forma me salta que el ID ya existe y da error de primary key ya existe.
Claro, porque debes saltarte los que ya existen con el código correcto. Prueba algo parecido a esto:

Código:
query.close;
query.selectsql.text := 'select * from tbclientes order by apellidos, nombre';
query.open;
iNumero := 1;
while not query.eof do
begin
  if query.fieldbyname('codigo').asinteger <> iNumero then
  begin
    query.edit;
    query.fieldbyname('codigo').asinteger := iNumero;
    query.post;
  end;
  query.next;
  inc( iNumero );
end;
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
Reordenar la salida de una consulta afxe Conexión con bases de datos 0 03-02-2009 12:06:07
reordenar indices foxpro cmm07 Varios 0 02-12-2007 23:30:12
Consecutivo con While Camilo Conexión con bases de datos 2 02-12-2007 22:44:08
Id Consecutivo en Paradox Anabel Conexión con bases de datos 19 01-12-2005 08:44:24
Reordenar indices en Paradox pablo Conexión con bases de datos 1 01-07-2004 07:33:54


La franja horaria es GMT +2. Ahora son las 17:36:16.


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