Vamos a ver. Supongamos que tenemos estas tablas:
Código:
producto = (id, nombre)
factura = (id, cliente_id, fecha)
linea = (id, factura_id, producto_id, cantidad)
donde los
id son llaves primarias.
Para mostrar en un DBGrid, los productos correspondientes a una factura determinada podríamos usar la siguiente consulta:
Código:
select linea.id, producto.nombre, linea.cantidad
from linea
left join producto on producto.id = linea.producto_id
where linea.factura_id = 2
Hasta aquí va todo bien. Conecto el ADOQuery con esta consulta a un DBGrid y puedo editar las cantidades.
Pero, si quiero mostrar los productos en orden alfabético, agrego un
order by
Código:
select linea.id, producto.nombre, linea.cantidad
from linea
left join producto on producto.id = linea.producto_id
where linea.factura_id = 2
order by producto.nombre
Con este cambio, al intentar modificar una cantidad, obtengo un error que dice:
Cita:
|
Información de columna clave insuficiente para realizar la operación Update o Refresh.
|
La pregunta entonces es: ¿cómo hago con ADO para poder realizar las ediciones en estos casos?
// Saludos