FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Cual es la mejor forma de modificar un registro?
Hola, quiero saber cual es la manera correcta y eficiente para modificar un registro.
tengo estos códigos pero no estoy seguro si es la mejor forma. en mi aplicación quiero implementar un código que sea eficiente, la base de datos que uso es firebird. Ó
|
#2
|
||||
|
||||
Ninguna de las dos.
Para modificar datos hay que usar "update", no select.
|
#3
|
||||
|
||||
No es eficiente... primero, porque intentas manejar un query como si fuese una tabla. Desde hace mucho se ha dicho que el manejo de componentes TTables, en la mayoría de los casos no es recomendado.
Por otro lado, no todos los componentes TQuery te permiten editar sus salidas, debido a que hay resultados complejos que pueden venir de diferentes tablas. Además no es eficiente que hagas una consulta de todos los Productos... para modificar solo uno de ellos. En tu segundo código veo una línea que sobra... y es el Open: cuando invocas el "active", implícitamente estas haciendo un open. Finalmente, Retomando lo que propone Casimiro, deberías hacer algo como:
|
#4
|
||||
|
||||
Hola wilcg.
La forma óptima de realizar una modificación mediante un query es la que te indicaron Casimiro y gatosoft. Pero veo un detalle en el último código, y es que la función ParamByName espera el nombre de parámetro no el de columna, es decir:
Saludos
__________________
Daniel Didriksen Guía de estilo - Uso de las etiquetas - La otra guía de estilo .... |
#5
|
||||
|
||||
Yo no usaria FormatDateTime para mandar un parametro de tipo fecha, eso es trabajo de los componentes ADO y el motor SQL
Es decir:
Debe funcionar bien ya sea para un ADOQuery, para un IBQuery, para un FDQuery, etc. La idea de los parametros ademas de su seguridad es la flexibilidad que otorgan al abstraerse del tipo de datos y el "como los quiere" el motor bd |
#6
|
|||
|
|||
Gracias a todos por su ayuda, pero hay algo que no me queda claro.
Como determino el registro que boy a modificar? , teniendo en cuenta que quiero modificar en la consulta un solo registro de muchos. Es por eso que en la consulta le indico que registro quiero modificar por medio de: codProducto que es una variable que contendrá el ID del registro a modificar. Última edición por wilcg fecha: 03-08-2015 a las 04:35:37. |
#7
|
||||
|
||||
Se lo indicas con un parametro
Casimiro te propuso usar una sentencia UPDATE .. WHERE. Es el WHERE justamente en donde se indica cual(es) son las fila(s) a modificar Imaginate una sentencia SQL como esta:
Eso hace que todos los productos tengan precio 10
Esa sentencia hace que todos los productos tengan el valor que se manda en el paraemtro UnPrecio
Y por ultimo, utilizando el WHERE puedo indicar a que producto quiero modificarle el precio. Ese WHERE del update "es el mismo" que el del SELECT; lo que te devolveria el SELECT es lo que seria afectado por el WHERE Creo que te vendria bien un manual de SQL Saludos! |
#8
|
|||
|
|||
AgustinOrtu, ya comprendí gracias a ti y a los demás por sus valiosos aportes.
|
#9
|
||||
|
||||
El registro a modificar (o los registros que quieras modificar) van en el where.
Cita:
Así que aprovecharé para recomendarte lo mejor de lo mejor: esto. |
#10
|
||||
|
||||
Cita:
Tienes razón Eficsa, hice un copypaste de lo que escribio casimiro y el código original copiado por wilcg y no lo analicé... buen apunte! |
#11
|
||||
|
||||
Claro, la culpa siempre es de los otros
|
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
cual es la mejor forma de trabajar con blob | anubis | Lazarus, FreePascal, Kylix, etc. | 44 | 22-09-2012 17:23:53 |
Cual es la mejor forma de conectar con la BD | GerTorresM | Conexión con bases de datos | 1 | 11-01-2010 16:51:47 |
Cual es la Mejor forma de Agregar,Modificar y Eliminar en ADO ? | LENOCB | Varios | 50 | 07-01-2008 04:04:47 |
cual es la mejor forma de logearse a mysql... | Arturo | MySQL | 1 | 11-10-2006 17:45:01 |
cual es la mejor forma ? | martita | Varios | 14 | 07-07-2005 19:35:55 |
|