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 29-08-2008
Almd Almd is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
Almd Va por buen camino
Cómo incremento posiciones?

Hola.
Vereis, tengo la siguiente tabla:

POSICION || NOMBRE
0 || Y
0 || Z
1 || A
2 || B
3 || C

Mi duda es, que tipo de consulta puedo hacer para, una vez haya hecho un update de la posición 0 con nombre Y a la 2, por ejemplo, luego que la posición 2 y a la 3 le sume 1 para que quedar así:

POSICION || NOMBRE
0 || Z
1 || A
2 || Y
3 || B
4 || C

Supongo que tendré que jugar con Delphi, que es con lo que estoy trabajando. Salu2.
Responder Con Cita
  #2  
Antiguo 29-08-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
Podría servirte asi.... pasándole el valor que le das a y por parámetro
Código SQL [-]
update tabla1 set posicion=posicion+1 where posicion>=:y
Responder Con Cita
  #3  
Antiguo 29-08-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Pues a salto de mata se me ocurre que si sabes el nombre que has modificado y el valor que se la ha dado podrías poner en un adoquery una vez modificado el registro.

Código Delphi [-]
adoquery1.sql.text:='UPDATE tabla SET posicion=posicion+1 WHERE  posicion>=' + valor + ' AND nombre<>' + quotedstr(nombre);


Creo que con esto te podría funcionar
Responder Con Cita
  #4  
Antiguo 29-08-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Te me has adelantado tcp_ip_es, pero creo que tienes un error porque con tu solución también incrementaría la posición del nombre que se ha modificado al principio. Creo yo.
Saludos.
Responder Con Cita
  #5  
Antiguo 29-08-2008
Avatar de tcp_ip_es
tcp_ip_es tcp_ip_es is offline
No confirmado
 
Registrado: ago 2003
Ubicación: Madrid
Posts: 635
Poder: 0
tcp_ip_es Va por buen camino
es que yo pensaba incrementar primero y luego colocar
Responder Con Cita
  #6  
Antiguo 29-08-2008
Avatar de ElDioni
[ElDioni] ElDioni is offline
Miembro Premium
 
Registrado: jul 2005
Ubicación: Murcia (España)
Posts: 935
Poder: 19
ElDioni Va por buen camino
Entonces no he dicho nada. Un saludo.
Responder Con Cita
  #7  
Antiguo 29-08-2008
Almd Almd is offline
Miembro
 
Registrado: ago 2008
Posts: 27
Poder: 0
Almd Va por buen camino
Solucionado.
Efectivamente primero se hace el Update de la posición 0 a la introducida, y después otro Update a la posición actual +1. En mi caso a quedado así (NOTA: ya que estoy con Delphi, pondré el código también, si sabeis un poco de Delphi lo entendereis):
Cita:
UPDATE TABLA1 SET POSICION='+EditPosicion.Text+' WHERE NOMBRE='+sComa+Trim(EditNombre.Text)+sComa+';
(sComa es una variable String que equivale a ' [comilla simple])

El siguiente Update quedó así:
Cita:
UPDATE TABLA1 SET POSICION='+IntToStr(iNumPos)+' WHERE NOMBRE='+sComa+Trim(vNOMBRE[iPos])+sComa;
(iNumPos es una variable de tipo int la cual guarda la posición y le suma 1 [iNumPos = EditPosicion.text => iNumPos = iNumPos +1;])
(vNOMBRE es un TStringsList que guarda los nombres).

Espero haberme explicado, y gracias chavales
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

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Prioridad de posiciones franfl C++ Builder 2 21-06-2008 12:18:00
¿Como sumar un valor de un edit y reflejar incremento en el mismo? The_Animal Varios 3 31-12-2007 01:12:48
Como usar solo dos posiciones decimales alcides Varios 9 02-04-2007 19:31:31
Como incremento un numero en la impresion? danytorres Varios 6 06-07-2005 23:42:56
posiciones decimales karocs Varios 6 12-09-2004 19:24:01


La franja horaria es GMT +2. Ahora son las 18:16:47.


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