Hola
Lepe he estado leyendo
http://www.mysql-hispano.org/page.php?id=27&pag=9
le entendí todo y es inetresante la forma como manejan las tablas de esa forma.. ya había leido antes sobre eso, pero algo superficial y ahora entendí mejor y comprendí todo, ahora me parece un poco mas complicado hacer todo eso de
Código SQL
[-]mysql> ALTER TABLE venta DROP FOREIGN KEY 0_26;
Query OK, 2 rows affected (0.22 sec)
Records: 2 Duplicates: 0 Warnings: 0
mysql> ALTER TABLE venta ADD FOREIGN KEY(id_cliente)
-> REFERENCES cliente(id_cliente) ON DELETE RESTRICT ON UPDATE CASCADE;
Query OK, 2 rows affected (0.22 sec)
Records: 2 Duplicates: 0 Warnings: 0
es un ejemplo.
hacer eso cada ves que quiero UPDATEAR o EDITAR un precio..
Bueno no es que es difícil.. pero no sería una mejor idea de mantener una sola tabla PRODCUTOS como la tenía en mi primer post, y de ahi leer los valores de los precios correspondientes ???
Bueno solo pienso eso.. por que no lo se hacer
![Big Grin](http://www.clubdelphi.com/foros/images/smilies/biggrin.gif)
Si es que es mejor de esta forma pues seguiré adelante de esta forma aunque me cueste un hue**
Si sería de mantener mi anterior tabla PRODUCTOS con los campos ahí mismo como sería para poder actualizar un StringGrid con una lista de precios seleccionada por el usuario en en ComboBox ??
Creo que solo sería cambiar en este código algo no ??
Código Delphi
[-] DM.ZQActualizaListaPrecio.Close;
DM.ZQActualizaListaPrecio.SQL.Clear;
DM.ZQActualizaListaPrecio.SQL.Add('SELECT precio FROM Tarifas');
DM.ZQActualizaListaPrecio.SQL.Add('Where CodProducto = :codigo');
DM.ZQActualizaListaPrecio.SQL.Add('and Tipo_Tarifa = :Tarifa');
DM.ZQActualizaListaPrecio.prepare;
with DM.ZQActualizaListaPrecio DO
For i:=0 to SGListaProductos.RowCount-1 Do
Begin
ParamByName('codigo').AsInteger := StrToInt(SGListaProductos.Cells[3,i]);
ParamByName('Tarifa').AsString = combobox1.items[combobox1.Itemindex];
Open; if not IsEmpty then
SGListaProductos.Cells[7,i] := Fieldbyname('Precio').AsString;
else
begin
ShowMessage('No existe El tipo de tarifa para el producto' + StrToInt(SGListaProductos.Cells[3,i]));
SGListaProductos.Cells[7,i] := '<< Error >>';
end;
Close; End;
Bueno creo que cambiando esta parte :
Código Delphi
[-] DM.ZQActualizaListaPrecio.Close;
DM.ZQActualizaListaPrecio.SQL.Clear;
DM.ZQActualizaListaPrecio.SQL.Add('SELECT precio FROM Tarifas');
DM.ZQActualizaListaPrecio.SQL.Add('Where CodProducto = :codigo');
DM.ZQActualizaListaPrecio.SQL.Add('and Tipo_Tarifa = :Tarifa');
DM.ZQActualizaListaPrecio.prepare;
se podría leer de mi tabla PRODUCTOS donde tengo los las tarifas ??
Bueno si no es posible o se complicaría mas aún.. seguiré tu consejo, lo que acabo de poner es solo una idea mia
salud!!