Puesto que la consulta que estás haciendo devuelve un resultado no debes usar el método "Execute" (sólo usa "Execute" cuando la consulta no devuelva resultado o, mejor dicho, un conjunto de registros). Utiliza, en su lugar, el método "Open" para ejecutar la consulta
Código Delphi
[-]
Q.DataSet.CommandText := 'select * from personas where id_persona=:n_id_persona';
Q.DataSet.CommandType := ctQuery;
Q.DataSet.Params.ParamByName('n_id_persona').AsString:= ‘xx’;
Q.DataSet.Prepared :=false;
Q.DataSet.Close;
Q.DataSet.Open;
Saludos!