Do not call Destroy directly in an application. Usually destruction of ADO query components is handled automatically by Delphi. If an application creates its own instances of a query, and does not assign an Owner that is responsible for freeing the dataset, then the application should call Free, which checks that the query is not nil before calling Destroy.