Deberías crear un nuevo thread; en el mismo no vas a poder.
Otra opción (aunque esta no la he probado) es utilizar parametros/opciones de la consulta (si las tiene). Por ejemplo ADO (que es donde yo lo he visto) posee en la opciones la posibilidad de definir la consulta para que se ejecute de forma "no-bloqueante" (repito, que no lo he probado).
Si alguien lo ha probado que nos de su opininión.
Segun la ayuda:
Código:
eoAsyncExecute
The command is executed asynchronously.
eoAsyncFetch
The command fetches remaining rows after the initial quantity specified in the Cache property asynchronously.
eoAsyncFetchNonBlocking
Execution is performed without blocking the thread.
eoExecuteNoRecords
A command or stored procedure that does not return. If any rows are retrieved, they are discarded and not returned.