Bueno bueno... uno siempre piensa en todo menos en lo más tonto..
Código Delphi
[-]
function TCDEXplorerThread.ExecuteQuery(Query: string):boolean;
begin
result := false;
fQuery.Close;
fQuery.SQL.Clear;
fQuery.SQL.Add(query);
Synchronize(fQuery.ExecQuery);
result := true;
Synchronize(SQLDev);
end;
Ahí estaba el problema, al estar la base de datos en un formulario externo necesitaba usar synchronize para que funcionara la interacción con elementos externos...
Gracias de todas formas por la ayuda dark, me ha abierto un poco la mente.