The result set returned by TSQLDataset is unidirectional.
This means that you can issue First and Next on the result set but not other commands such as Prior.
The result set returned by TSQLDataset is read-only.
This means that you cannot amend a record returned by TSQLDataset.
These appear to be severe limitations. But there are ways to provide bi-directional and update capabilities. TClientDataset and TDataSetProvider are the components to use with TSQLDataset to give bi-directional and update support.
The reason why TSQLDataset has these limitations is to provide a very fast lightweight means of accessing a database. This means when you only need uni-directional read-only capabilities you can have them in the fastest way possible. Speed and low resource use can be vital - especially for on line systems when giving the customer a fast response is important for the business.
Full bi-directional and update support can be added to TSQLDataset by linking in the TClientDataset and TDataSetProvider components.