elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Como actualizar filas que contienen la misma id?
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Como actualizar filas que contienen la misma id?  (Leído 3,309 veces)
Bardick

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Como actualizar filas que contienen la misma id?
« en: 14 Mayo 2010, 02:08 am »

Hola,tengo una tabla de la base de datos acces como el siguiente esquema:

id   codigo
---- -------
1    100
1    200

Se podria actualizar una fila en concreto sin que afecte a las demas?
 
Este es el codigo que utilizo:

Código:
sql = "Update tabla1 set codigo=1 where id=1"
cn.Execute (sql)

El problema es que me actualiza todas las filas que contienen la id=1 con el mismo valor.

Las id's no las puedo cambiar porque estan relacionadas a otra tabla.

PD: Espero haberme explicado bien   :xD


« Última modificación: 14 Mayo 2010, 02:10 am por Bardick » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Como actualizar filas que contienen la misma id?
« Respuesta #1 en: 14 Mayo 2010, 02:47 am »

De poderse realizar, supongo que si, pero porque tienes el mismo ID dentro de la misma tabla, leete sobre normalización de base de datos, tienes un grave error.


En línea

Te vendería mi talento por poder dormir tranquilo.
MCKSys Argentina
Moderador Global
***
Desconectado Desconectado

Mensajes: 5.518


Diviértete crackeando, que para eso estamos!


Ver Perfil
Re: Como actualizar filas que contienen la misma id?
« Respuesta #2 en: 14 Mayo 2010, 05:05 am »

Coincido con Alex@ShellRoot.

Ahora, quizás podrías agregar algún otro campo al SQL para diferenciar uno del otro.

(Aunque si lo piensas bien, si la suma de esos 2 campos te permite hacer una clave única, convendría definir la misma como clave primaria :) )

Saludos!
En línea

MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."

^Tifa^


Desconectado Desconectado

Mensajes: 2.804


Ver Perfil
Re: Como actualizar filas que contienen la misma id?
« Respuesta #3 en: 14 Mayo 2010, 05:32 am »

No he visto la estructura del esquema pero, segun lo que el menciona aca no tiene pinta de datos redundantes sino relacionales entre distintas tablas mediante el campo ID  :rolleyes:  lo cual no se sale de la normalizacion.

Te recomiendo que leas sobre TOP en SQL Server... si fuese MySQL usase la clausula LIMIT 3,4 donde el 3 indicaria el indice de la fila por donde empezar a leer el arreglo y 4 pues la siguiente data o el siguiente indice... los registros en los campos son arreglos se acceden a ellos mediante un indice. Yo no se lamentablemente como funciona la clausula TOP en SQL Server pero, mira ver si puedes hacer lo msimo con esta como hacen con LIMIT de MySQL especificarle desde que indice hasta que indice leer (actualizar) en este caso.

BTW....

Otra forma, si quieres actualizar todos los campos codigo que sean igual a 200 (por ejemplo) en vez de filtrar por ID filtrate por campo asi:

Código
  1.  
  2. SQL = "Update tabla1 set codigo=1 where campo = 200"
  3.  

Si son varios campos:

Código
  1.  
  2. SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400)"
  3.  

Y si quieres optimizar la consulta (No se si funciona en SQL Server ) pero:

Código
  1.  
  2. SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400) using(id)"
  3.  

Sino funciona, pues:

Código
  1.  
  2. SQL = "Update tabla1 set codigo=1 where campo IN(200, 300, 400) and id = 1"
  3.  

Agur... ;)
« Última modificación: 14 Mayo 2010, 14:07 pm por ^Tifa^ » En línea

Bardick

Desconectado Desconectado

Mensajes: 14


Ver Perfil
Re: Como actualizar filas que contienen la misma id?
« Respuesta #4 en: 15 Mayo 2010, 03:16 am »

Bueno,al fin pude conseguirlo :),pude solucionarlo creando una columna autonumerica para que cada fila fuera distinta.

Pongo el codigo final de como me a quedado por si alguno le puede servir:

Código:
rs.open "Select id,id_2 From tabla1 where id='1' 'Seleccionamos todos los registros que contengan id=1
While Not rs.EOF
sql = "Update tabla1 set codigo=('" & codigo(cont).Text & "') where id=1 AND id_2=('" & rs.Fields(1) & "')" 'Actualizamos el campo codigo con lo que contiene el textbox siendo la variable cont el indice.
cn.Execute (sql)
cont=cont+1 'Incrementamos para grabe otro textbox (matriz)
rs.MoveNext 'Movemos al siguiente registro
Wend

Gracias por responder, igualmente mirare eso del TOP que dices ^Tifa^ pero desconozco si se puede utilizar con visual basic...
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Como actualizar filas que contienen la misma id?
« Respuesta #5 en: 15 Mayo 2010, 06:21 am »

xD, lo del TOP es en el SQL Server xD
:http://technet.microsoft.com/es-es/library/ms189463.aspx
En línea

Te vendería mi talento por poder dormir tranquilo.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines