Ver Mensaje Individual
  #5  
Antiguo 03-04-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
En la tabla tarifas, te falta un campo IdTarifa, para poder identificar ese precio unequívocamente, que ha de ser la clave primaria de esa tabla (un autoincremento sirve perfectamente).

Ya que comprendes que tu fallo es por falta de conocimientos, debes estudiar el diseño de bases de datos, en internet no faltan documentos de ese tipo (quizás la mayoría esté en inglés o en otro SGBBDD, pero puedes aprender los conceptos).

El tema es muy amplio, pero básicamente es así:
- Seleccionamos, por ejemplo por idproducto, ya que es lo que conocemos en primera instancia
Código SQL [-]
  select * from tarifas where IdProducto = :ids
Esa consulta tiene el parámetro "ids" que se lo daremos en ejecución. Nos dará como resultado los 6 precios de ese producto, es decir 6 registros de la tabla tarifas.

Update:
Código SQL [-]
update tarifas set precio = :ElPrecio where idTarifa = :OLD_IdTarifa

Y aquí está el truco, OLD_ hace referencia al valor antiguo (antes de modificar ) el valor del campo autoincremento IdTarifa. De esta forma podemos identificar uniquívocamente el registro que queremos actualizar. :OLD_IdTarifa, se tomará del registro activo en el TZQuery en el momento de actualizar.

El Tema de insertar ya es más complejo de explicar, porque normalmente se hace uso de Triggers para dar un valor al idTarifa, y eso, son conceptos de la arquitectura Cliente/Servidor.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita