Necesitas una tabla para las cotizaciones:
cotizacion = (id, cliente_id, fecha, ... )
y una tabla para las líneas (productos) que incluye una cotización:
linea_cotizacion = (id, cotizacion_id, cantidad, ... )
Tendrás dos
datasets, uno para cada tabla, además de las de productos y clientes, y estableces una relación maestro-detalle entre ambas:
cotizacion.id -> linea_cotizacion.cotizacion_id
Además tendrás dos dbGrid enlazados a estas tablas.
Cuando inicies la cotización añades un registro a la tabla de cotizaciones y lo llenas de entrada con el id del cliente seleccionado (en el dbgrid de clientes) y otros campos que hagan falta.
Haces el
post y tomas el id asignado (suponiendo que lo genera el servidor o que es un campo autoincremental).
Al añadir un producto, (p. ej. con un doble click), agregas un registro a la tabla de líneas de cotización, y al registro en blanco le asignas el id de la cotización que ya obtuviste y el id del producto seleccionado en el dbgrid de productos.
De esta forma, tus líneas se guardan automáticamente con las relaciones necesarias sin necesidad de usar un StringGrid.
Algo así.
// Saludos