FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Actualizar todos los registros de una tabla
Hola, tengo una tabla llamada ArchCaja con unos registros que tienen un valor x en en el campo "Valor" y quiero que al dar click en un boton, a este valor de este campo se le reste 100, no soy experto, aqui tengo lo que creí que podría funcionar pero no fué así:
ArchCaja.Open; ArchCaja.IndexName := 'PorFecha'; ArchCaja.CancelRange; ArchCaja.SetRange([desdeFr.date],[hastaFr.date]); ArchCaja.Edit; ArchCaja.FieldByName('Valor').AsInteger := ArchCaja.FieldByName('Valor').AsInteger - 100; ArchCaja.Post; Al ejecutar este código, solo me cambia el valor del primer registro, pero lo que necesito es cambiar ese valor en todos los registros del rango solicitado de fecha. Gracias a todos los que me puedan dar una idea. |
#2
|
||||
|
||||
Si lo haces registro a registro tendrás que realizar un recorrido por todos los registros de la tabla e ir cambiando de uno en uno. Algo así:
Otra opción más eficiente es utilizar una consulta SQL; La lanzar y te hará la actualización de todos los registros. Bastante más rápido dependiendo del número de registros. Crea un Query y asigna a la propiedad SQL:
Depende de los componentes que esté utilizando puede variar la sintaxis, pero es para que te hagas una idea. Con esta sólo instrucción te cambiará de una pasada el valor para todos los registros de la tabla. Un saludo.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
|||
|
|||
Yo utilizaria la segunda opcion es mas sencilla y asi lo que necesitas... salu2
|
#4
|
||||
|
||||
Código:
> El mensaje es el siguiente: > > Hola, recibi tu respuesta sobre la pregunta que hice acerca > de actualizar todos los registros de una tabla, pero la > pimera no me funciono, solo actualiza el primer registro, y > la segunda opcion que me diste de sql: > Query := 'UPDATE tabla SET Valor = (Valor - 100)'; > Query.Exec; > > no actualiza nada, si escribo: > > Query := 'UPDATE tabla SET Valor = (Valor)'; > Query.Exec; > > me actualiza con el nombre del campo en mención. > > si escribo: > > Query := 'UPDATE tabla SET Valor = (100)'; > Query.Exec; > me actualiza todos los registros a 100 > > pero tal como me dijiste: > > Query := 'UPDATE tabla SET Valor = (Valor - 100)'; > Query.Exec; > > no me actualiza nada, es como si no reconociera el campo o el > signo o ambas. Que me recomiendas? que estoy haciendo mal?? He creado una tablita sencilla con 2 campos: Campo1 Campo2 ------------------ 1 2000 2 2000 3 4000 4 5000 5 6000 6 3000 Y he ejecutado la sentencia:
Luego he revisado los valores: Campo1 Campo2 -------------------- 1 2003 2 2003 3 4003 4 5003 5 6003 6 3003
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#5
|
|||
|
|||
Gracias a Todos
Hola, gracias a todos lo que me ayudaron, finalmente todas sus respuestas estaban bien , el error estaba en el tipo del campo que yo estaba procesando. Lo tenía como TBCDField y lo dejé como TCurrencyField.
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
tabla dañada? aparecen todos los registros asi: ®?P½/”ÄrÒP | Wonni | Tablas planas | 10 | 16-06-2006 20:59:48 |
Obtener TODOS los registros de una tabla | Fita | SQL | 2 | 06-09-2005 03:06:24 |
Seleccionar todos los registros de una tabla menos 2 | FunBit | MySQL | 4 | 13-07-2005 17:06:31 |
CÓmo Sumar Todos Los Registros De Una Tabla | Leogiro | SQL | 2 | 09-09-2004 18:39:23 |
borrar todos los registros de un tabla | Giniromero | Conexión con bases de datos | 4 | 18-12-2003 11:47:20 |
|