Ver Mensaje Individual
  #2  
Antiguo 21-03-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Reputación: 29
Lepe Va por buen camino
Pues si, has sido muy claro y conciso .

Creo que vas bien. La SQL que necesitas para actualizar el precio según la lista elegida sería:
Código Delphi [-]
For i:=0 to  SGListaProductos.RowCount-1 Do
Begin
    DM.ZQActualizaListaPrecio.SQL.Add('UPDATE productos');
    DM.ZQActualizaListaPrecio.SQL.Add(' SET Precio = :precio');
    DM.ZQActualizaListaPrecio.SQL.Add('Where CodProducto = :codigo');
    DM.ZQActualizaListaPrecio.ParamByName('precio').AsCurrency:= strToCur(Precio);
    DM.ZQActualizaListaPrecio.ParamByName('codigo').AsInteger  := StrToInt(SGListaProductos.Cells[3,i]);
DM.ZQActualizaListaPrecio.ExecSql; // ejecutamos la consulta.
end;

Aunque yo, en lugar de guardar los 4 precios en la tabla productos, hubiera creado una nueva tabla llamada tarifas, donde a cada producto le pondría los precios:
tabla tarifas:
Código:
codProducto       Tipo_Tarifa          Precio
     21            Precio_Bajo      10 €
     21            Precio_Medio     15 €
     21            Precio_Alto      30 €
     1             Precio_Bajo      10 €
     1             Precio_Alto      30 €
La clave primaria la conformaría los dos primeros campos, de esa forma no se permitirían inchoherencias (poner 2 precios a un mismo producto con el mismo Tipo_Tarifa).

Después, para presentar la lista en el combo haría algo así:
Código SQL [-]
select * from tarifas where codigo = 1

En el combo podría presentar el campo Tipo_Tarifa, y el usuario elije la que quiere aplicar.

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

Última edición por Lepe fecha: 21-03-2007 a las 12:13:15.
Responder Con Cita