Subject TIBODataset.PSSetParams issue
Author masonwheeler
Does anyone know how to get TIBOTable to work correctly with a Provider?

I've got a TClientDataset linked to a TIBOTable through a provider. This dataset serves as a detail to another TClientDataset, so when the Master changes, the detail needs to refresh with new data. It calls the Provider with a specific parameter, which passes it along to the TIBOTable... which promptly screws the entire thing up.

It calls TIBODataset.PSSetParams, which ends up doing absolutely nothing because the TIBOTable has no params of its own to copy the values to. (And there's no option to set params on it, because it's a full-table dataset.) This means that instead of a limited data packet, the provider pulls back a full data packet.

And that's not actually so bad, at least not at first. The ClientDataset can still filter things correctly at its end. The problem is that a full data packet does not necessarily comprise the entire contents of the TIBOTable. So when the Master scrolls far enough that the Detail needs more data, it calls to the Provider again... and gets the exact same data packet back again, because there's no filtering taking place. Then it tries to insert that data into the Detail, and Midas raises a Key Violation exception.

Anyone know any way to make this work correctly?