anchor.diff:      Mod:send(Sock, efirebirdsql_op:op_detach(DbHandle)),
       case efirebirdsql_op:get_response(Mod, Sock) of
           {op_response,  {ok, _, _}} -> ok;
  -        _ -> {error, "Detach failed"}
  -    end.
  -
  +        {op_response, {error, Msg}} -> {error, Msg}
  +    end.
   
   %% Transaction
   begin_transaction(Mod, Sock, DbHandle, Tpb) ->
  
positive.code:     Mod:send(Sock, efirebirdsql_op:op_commit_retaining(TransHandle)),
      case efirebirdsql_op:get_response(Mod, Sock) of
          {op_response,  {ok, _, _}} -> ok;
          _ -> {error, "Commit failed"}
      end.
  
  rollback(Mod, Sock, TransHandle) ->
      Mod:send(Sock, efirebirdsql_op:op_rollback_retaining(TransHandle)),
      case efirebirdsql_op:get_response(Mod, Sock) of
          {op_response,  {ok, _, _}} -> ok;
          _ -> {error, "Rollback failed"}
      end.
  
  %% -- client interface --
  
negative.code:         efirebirdsql_op:op_transaction(DbHandle, Tpb)),
      case efirebirdsql_op:get_response(Mod, Sock) of
          {op_response,  {ok, Handle, _}} -> {ok, Handle};
          {op_response, {error, Msg}} -> {error, Msg}
      end.
  
  %% prepare and free statement
  