indexing
     status: "See notice at end of class"
     date: "$Date$"
     revision: "$Revision$"
     access: execute, immediate, prepare
     product: eiffelstore
     database: all_bases

class interface
     DB_EXEC

create

     make
                 -- Create current instance
           ensure
                 execution_status: not immediate_execution

feature -- Status report

     immediate_execution: BOOLEAN
                 -- Is execution of SQL query immediate?

     is_tracing: BOOLEAN
                 -- Is trace option for SQL queries on?

     trace_output: FILE
                 -- Trace destination file
           ensure
                 destination_file_present: Result = io.error
     
feature -- Status setting

     set_immediate
                 -- Set immediate_execution to true.
                 -- Query will be executed with a
                 -- `EXECUTE IMMEDIATE' SQL  statement
           ensure
                 execution_status: immediate_execution

     set_trace
                 -- Trace queries sent to database server.
           ensure
                 trace_status: is_tracing

     unset_immediate
                 -- Set immediate_execution to false.
                 -- Query will be executed with a
                 -- PREPARE and EXECUTE SQL statement.
           ensure
                 execution_status: not immediate_execution

     unset_trace
                 -- Do not trace queries sent to database server.
           ensure
                 trace_status: not is_tracing
     
invariant

           -- from ANY
     reflexive_equality: standard_is_equal (Current)
     reflexive_conformance: conforms_to (Current)

end -- class DB_EXEC