Automatic generation produced by ISE Eiffel
note description: "Specification of the database. Generic parameter" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2017-05-23 04:29:02 -0800 (Tue, 23 May 2017) $" revision: "$Revision: 100428 $" deferred class interface DATABASE feature -- Access generating_type: TYPE [detachable DATABASE] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty feature -- Comparison frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: DATABASE): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) is_equal (other: DATABASE): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: DATABASE): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) feature -- Duplication copy (other: DATABASE) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen deep_copy (other: DATABASE) -- Effect equivalent to that of: -- `copy` (other . `deep_twin`) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: DATABASE -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: DATABASE) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: DATABASE -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: DATABASE -- New object equal to Current -- `twin` calls `copy`; to change copying/twinning semantics, redefine `copy`. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations frozen default: detachable DATABASE -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.`default` for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class feature database_handle_name: STRING_8 -- Database handle name. feature -- DATABASE_BOOLEAN sql_name_boolean: STRING_8 -- SQL type name for boolean feature -- DATABASE_CHARACTER sql_name_character: STRING_8 -- SQL type name for character feature -- DATABASE_DATETIME sql_name_datetime: STRING_8 -- SQL type name for datetime feature -- DATABASE_DECIMAL sql_name_decimal: STRING_8 -- SQL type name for decimal feature -- DATABASE_DOUBLE sql_name_double: STRING_8 -- SQL type name for double feature -- DATABASE_INTEGER sql_name_integer: STRING_8 -- SQL type name for integer sql_name_integer_16: STRING_8 -- SQL type name for integer sql_name_integer_64: STRING_8 -- SQL type name for integer feature -- DATABASE_REAL sql_name_real: STRING_8 -- SQL type name for real feature -- DATABASE_STRING sql_name_string: STRING_8 -- SQL type name of string feature -- External features affected_row_count: INTEGER_32 -- The number of rows changed, deleted, or inserted by the last statement require is_affected_row_count_supported: is_affected_row_count_supported begin -- Begin a data base transaction close_cursor (no_descriptor: INTEGER_32) -- A SQL has been performed in DYNAMIC EXECUTION mode, -- Then if the DYNAMICALLY EXECUTED SQL statement is a SELECT -- statement, then the cursor is closed. -- Then one can do an other selection on the previous cursor. commit -- Commit the current transaction connect (user_name, user_passwd, data_source, application, hostname, role_id: STRING_8; role_passwd: detachable STRING_8; group_id: STRING_8) -- Connect to database connect_by_connection_string (a_connect_string: STRING_8) -- Connect to database by connection string conv_type (indicator: INTEGER_32; index: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. database_make (i: INTEGER_32) -- Initialize database c-module disconnect -- Disconnect the current connection with an database exec_immediate (no_descriptor: INTEGER_32; command: READABLE_STRING_GENERAL) -- In IMMEDIATE EXECUTE mode perform the SQL statement, -- and then check if there is warning message for the execution, get_boolean_data (no_descriptor: INTEGER_32; ind: INTEGER_32): BOOLEAN -- Function used to get data from structure SQLDA filled by FETCH clause. get_col_len (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_col_type (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_count (no_descriptor: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_data_len (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_date_data (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_day (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_decimal (no_descriptor: INTEGER_32; ind: INTEGER_32): detachable TUPLE [digits: STRING_8; sign: INTEGER_32; precision: INTEGER_32; scale: INTEGER_32] -- Function used to get decimal info get_error_code: INTEGER_32 -- Function related with the error processing get_error_message: POINTER -- Function related with the error processing get_error_message_string: STRING_32 -- Function related with the error processing get_float_data (no_descriptor: INTEGER_32; ind: INTEGER_32): REAL_64 -- Function used to get data from structure SQLDA filled by FETCH clause. get_hour (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_integer_16_data (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_16 -- Function used to get data from structure SQLDA filled by FETCH clause. get_integer_64_data (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_64 -- Function used to get data from structure SQLDA filled by FETCH clause. get_integer_data (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_min (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_month (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_real_data (no_descriptor: INTEGER_32; ind: INTEGER_32): REAL_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_sec (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. get_warn_message: POINTER -- Function related with the error processing get_warn_message_string: STRING_32 -- Function related with the error processing get_year (no_descriptor: INTEGER_32; ind: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. identifier_quoter: STRING_32 -- Return the string used to quote identifiers in SQL command, -- for example, if the quoter is `, and we want to select on -- table "my table", we should express the query as: -- select * from My table -- Only for ODBC init_order (no_descriptor: INTEGER_32; command: READABLE_STRING_GENERAL) -- In DYNAMICALLY EXECUTE mode perform the SQL statement -- But this routine only get things ready for dynamic execution: -- 1. get the SQL statement PREPAREd; and check if there are -- warning message for the SQL statement; -- 2. DESCRIBE the SQL statement and get enough information to -- allocate enough memory space for the corresponding descriptor. is_affected_row_count_supported: BOOLEAN -- Is `affected_row_count` supported? is_null_data (no_descriptor: INTEGER_32; ind: INTEGER_32): BOOLEAN -- Is last retrieved data null? new_descriptor: INTEGER_32 -- A descriptor is used to store a row fetched by FETCH command -- Whenever perform a SELECT statement, allocate a new descriptor -- by int_new_descriptor(), the descriptor is freed -- when the SELECT statement terminates. next_row (no_descriptor: INTEGER_32) -- A SELECT statement is now being executed in DYNAMIC EXECUTION mode, -- the routine is to FETCH a new tuple from database -- and if a new tuple is fetched, return 1 otherwise return 0. no_error_code: INTEGER_32 -- Code indicating no error -- In ODBC, MySQL, Oracle, Sybase, zero means no error. It may vary in coming implementations. put_col_name (no_descriptor: INTEGER_32; index: INTEGER_32; ar: STRING_8; max_len: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. require ar_not_void: ar /= Void put_data (no_descriptor: INTEGER_32; index: INTEGER_32; ar: STRING_8; max_len: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. put_data_32 (no_descriptor: INTEGER_32; index: INTEGER_32; ar: STRING_32; max_len: INTEGER_32): INTEGER_32 -- Function used to get data from structure SQLDA filled by FETCH clause. qualifier_separator: STRING_32 -- When "qualifier" and "owner" are used to identifier -- a database object, they should be separated by a string called -- "qualifier separator" -- Only for ODBC rollback -- Commit the current transaction sensitive_mixed: BOOLEAN -- Is the database sensitive to lower or -- upper case? -- Only for ODBC, Ingres start_order (no_descriptor: INTEGER_32) -- Finish execution of a SQL statement in DYNAMICLLY EXECUTION mode: */ -- 1. if the PREPAREd SQL statement is a NON_SELECT statement, -- just EXECUTE it; otherwise, DEFINE a CURSOR for it and -- OPEN the CURSOR. In the process, if error occurs, do some -- clearence; terminate_order (no_descriptor: INTEGER_32) -- A SQL has been performed in DYNAMIC EXECUTION mode, -- so the routine is to do some clearence: -- 1. if the DYNAMICALLY EXECUTED SQL statement is a NON_SELECT -- statement, just free the memory for ODBCSQLDA and clear -- the cell in 'descriptor' to NULL; otherwise, CLOSE the CURSOR -- and then do the same clearence. -- 2. return error number. trancount: INTEGER_32 -- Return the number of transactions now active feature -- For DATABASE_CHANGE descriptor_is_available: BOOLEAN -- Is a new descritor available? hide_qualifier (c_temp: READABLE_STRING_GENERAL): POINTER -- When "qualifier" is used to identify an database object, -- we have to hide ":" in the qualifier first, otherwise, it -- will be misinterpreted by feature SQL_SCAN::parse -- Only for ODBC require c_temp_not_void: c_temp /= Void pre_immediate (descriptor, i: INTEGER_32) -- In IMMEDIATE EXECUTE mode, if the performed SQL statement is -- a call to a stored procedure, allocate some area used by the -- stored procedure -- Only for ODBC results_order (no_descriptor: INTEGER_32): INTEGER_32 -- Fetch all the rows resulting from the sql query -- Default value zero -- Only for Sybase feature -- For DATABASE_FORMAT date_to_str (object: DATE_TIME): STRING_8 -- String representation in SQL of object -- For ODBC, ORACLE require object_not_void: object /= Void false_representation: STRING_8 -- Database representation of the boolean False string_format_32 (object: detachable READABLE_STRING_GENERAL): STRING_32 -- String representation in SQL of object true_representation: STRING_8 -- Database representation of the boolean True feature -- For DATABASE_PROC drop_proc_not_supported -- Display the text saying that the database -- does not support stored procedure dropping -- Redefined for ODBC exec_proc_not_supported -- Display the text saying that the database -- does not support stored procedure executing -- Redefined for ODBC has_row_number: BOOLEAN -- May the database store the text of a stored procedure in more than one -- row? -- Default value False -- Redefined for Ingres map_var_after: STRING_8 -- Redefined for Sybase map_var_before: STRING_8 -- Redefined for Sybase map_var_between: STRING_8 -- @ symbol for ODBC and Sybase map_var_between_2: STRING_8 -- Equal type -- Only for Ingres map_var_name_32 (par_name: READABLE_STRING_GENERAL): STRING_32 -- Redefined for Sybase require par_name_not_void: par_name /= Void name_proc_lower: BOOLEAN -- Has the name of the stored procedure to be in lower case? no_args: STRING_8 -- No augument. i.e. "()" -- Redefined for MySQL proc_args: BOOLEAN -- True if the execution of the stored procedure is -- "execute procedure_name (argument1='sireude')" -- False if "execute procedure_name ('sireude')" -- Default value False -- True for Sybase select_exists_32 (name: READABLE_STRING_GENERAL): STRING_32 -- SQL query to test stored procedure existing require name_not_void: name /= Void select_text_32 (proc_name: READABLE_STRING_GENERAL): STRING_32 -- SQL query to get stored procedure text require proc_name_not_void: proc_name /= Void sql_adapt_db (sql: STRING_8): STRING_8 -- Adapt the SQL string for the database -- Only for Sybase and ODBC require sql_not_void: sql /= Void sql_adapt_db_32 (sql: STRING_32): STRING_32 -- Adapt the SQL string for the database -- Only for Sybase and ODBC require sql_not_void: sql /= Void sql_after_exec: STRING_8 -- End of the stored procedure execution string. sql_as: STRING_8 -- Creating a stored procedure "as"... sql_creation: STRING_8 -- Begining of the stored procedure creation string. sql_end: STRING_8 -- End of the stored procedure creation string. sql_execution: STRING_8 -- Begining of the stored procedure execution string. store_proc_not_supported -- Display the text saying that the database -- does not support stored procedure creating -- Redefined for ODBC support_drop_proc: BOOLEAN -- Does the database support stored procedure dropping from server? support_proc: BOOLEAN -- Does the database support stored procedure? -- 1 if True, 0 if False -- Redefined for ODBC support_sql_of_proc: BOOLEAN -- Does the database support SQL attachment to the stored procedure? support_stored_proc: BOOLEAN -- Does the database support creating a stored procedure? text_not_supported: STRING_32 -- Display the text saying that the database -- does not support stored procedure text retrieving -- Redefined for ODBC feature -- For DATABASE_REPOSITORY max_char_size: INTEGER_32 -- Limit size before being a text -- Except for ODBC selection_string (rep_qualifier, rep_owner, repository_name: STRING_8): STRING_8 -- String to select the table needed require rep_qualifier_not_void: rep_qualifier /= Void rep_owner_not_void: rep_owner /= Void repository_name_not_void: repository_name /= Void sql_string: STRING_8 -- Database type of a string -- with a size less than Max_char_size sql_string2 (int: INTEGER_32): STRING_8 -- Database type of a string -- with a size more than Max_char_size sql_wstring: STRING_8 -- Database type of a string -- with a size less than Max_char_size sql_wstring2 (int: INTEGER_32): STRING_8 -- Database type of a string -- with a size more than Max_char_size feature -- For DATABASE_SELECTION, DATABASE_CHANGE bind_arguments (descriptor: INTEGER_32; uht: DB_STRING_HASH_TABLE [detachable ANY]; ht_order: detachable ARRAYED_LIST [READABLE_STRING_GENERAL]) -- Bind arguments to current statement. dyn_sql_colon_style: BOOLEAN -- Is dynamic SQL in colon style? -- i.e. "SELECT * FROM t WHERE price = :price" -- Otherwise it will be question mark style. -- i.e. "SELECT * FROM t WHERE price = ?" normal_parse: BOOLEAN -- Should the SQL string be normal parsed, -- using SQL_SCAN? parse (descriptor: INTEGER_32; uht: detachable DB_STRING_HASH_TABLE [detachable ANY]; ht_order: detachable ARRAYED_LIST [READABLE_STRING_GENERAL]; uhandle: HANDLE; sql: READABLE_STRING_GENERAL; dynamic: BOOLEAN): BOOLEAN -- Prepare string sql by appending map -- variables name from to sql. Map variables are used -- dynamic, True if a dynamic parse is required. False, the argument is simply ignored. -- for set input arguments -- For ODBC require uhandle_not_void: uhandle /= Void sql_not_void: sql /= Void result_order (descriptor: INTEGER_32) -- Fetch one row resulting from the sql query -- Default value zero -- For Sybase feature -- For DATABASE_STATUS clear_error -- Reset database error status. found: BOOLEAN -- Is there any record matching the last -- selection condition used ? insert_auto_identity_column: BOOLEAN -- For INSERTs and UPDATEs should table auto-increment identity columns be explicitly included in the statement? is_error_updated: BOOLEAN -- Has a database function been called since last update which may have -- updated error code, error message? is_warning_updated: BOOLEAN -- Has a database function been called since last update which may have -- warnings? feature -- For DATABASE_STORE dim_rep_diff (repository_dimension, db_field_count: INTEGER_32): BOOLEAN -- Is the dimension of the repository different to the field count of the object to insert? -- If yes, make a default map_table -- Default value False -- Only for Sybase put_column_name (repository: DATABASE_REPOSITORY [like Current]; map_table: ARRAY [INTEGER_32]; obj: ANY): STRING_8 -- Add the columns names to sql_string in the feature put require repository_not_void: repository /= Void map_table_not_void: map_table /= Void obj_not_void: obj /= Void update_map_table_error (db_handle: HANDLE; map_table: ARRAY [INTEGER_32]; ind: INTEGER_32) -- Except for ODBC and for Oracle feature -- For database types convert_string_type (r_any: ANY; field_name, class_name: STRING_8): ANY -- Convert r_any to the expected object. -- By default returns r_any, redefined in ORACLE to return -- an INTEGER_REF when field_name is "data_type". require r_any_not_void: r_any /= Void field_name_not_void: field_name /= Void class_name_not_void: class_name /= Void ensure valid_result: Result /= Void is_convert_string_type_required: BOOLEAN -- Is `convert_string_type` required to be called on Current when converting database field to an Eiffel object. -- Currently used in {DATABASE_SELECTION}.cursor_to_object. feature -- LOGIN and DATABASE_APPL only for password_ok is_connection_string_supported: BOOLEAN -- Support login by connect string? password_ensure (name, passwd, uname, upasswd: STRING_8): BOOLEAN -- Is name equal to uname and passwd equal to upasswd? require name_not_void: name /= Void passwd_not_void: passwd /= Void uname_not_void: uname /= Void upasswd_not_void: upasswd /= Void password_ok (upasswd: STRING_8): BOOLEAN -- Can the user password be Void? require upasswd_not_void: upasswd /= Void user_name_ok (uname: STRING_8): BOOLEAN -- Can the user name be Void? -- Yes only for ODBC require uname_not_void: uname /= Void feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY out_not_void: Result /= Void print (o: detachable ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void invariant -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) note copyright: "Copyright (c) 1984-2017, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class DATABASE -- Generated by Eiffel Studio --
For more details: eiffel.org