Class: Query
- Inherits:
-
Gloo::Core::Obj
- Object
- Gloo::Core::Obj
- Query
- Defined in:
- lib/query.rb
Overview
- Author
-
Eric Crane ([email protected])
- Copyright
-
Copyright © 2020 Eric Crane. All rights reserved.
A SQL database query. Relies on a database connection object.
Constant Summary collapse
- KEYWORD =
'query'.freeze
- KEYWORD_SHORT =
'sql'.freeze
- DB =
'database'.freeze
- SQL =
'sql'.freeze
- RESULT =
'result'.freeze
- PARAMS =
'params'.freeze
- SIMPLE_LIST =
'simple_list'.freeze
- DB_MISSING_ERR =
'The database connection is missing!'.freeze
Class Method Summary collapse
-
.messages ⇒ Object
Get a list of message names that this object receives.
-
.short_typename ⇒ Object
The short name of the object type.
-
.typename ⇒ Object
The name of the object type.
Instance Method Summary collapse
-
#add_children_on_create? ⇒ Boolean
Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.
-
#add_default_children ⇒ Object
Add children to this object.
-
#get_result_can ⇒ Object
Get the result container if it exists.
-
#log_query(sql, params) ⇒ Object
Write the query to the log.
-
#msg_run ⇒ Object
Run the query and process the results.
-
#run_query ⇒ Object
Run the query and return the results.
-
#simple_list? ⇒ Boolean
Should the output be put in a simple list?.
Class Method Details
.messages ⇒ Object
Get a list of message names that this object receives.
76 77 78 |
# File 'lib/query.rb', line 76 def self. return super + [ 'run' ] end |
.short_typename ⇒ Object
The short name of the object type.
31 32 33 |
# File 'lib/query.rb', line 31 def self.short_typename return KEYWORD_SHORT end |
.typename ⇒ Object
The name of the object type.
24 25 26 |
# File 'lib/query.rb', line 24 def self.typename return KEYWORD end |
Instance Method Details
#add_children_on_create? ⇒ Boolean
Does this object have children to add when an object is created in interactive mode? This does not apply during obj load, etc.
53 54 55 |
# File 'lib/query.rb', line 53 def add_children_on_create? return true end |
#add_default_children ⇒ Object
Add children to this object. This is used by containers to add children needed for default configurations.
62 63 64 65 66 67 |
# File 'lib/query.rb', line 62 def add_default_children fac = @engine.factory fac.create_alias DB, nil, self fac.create_string SQL, nil, self fac.create_can RESULT, self end |
#get_result_can ⇒ Object
Get the result container if it exists.
38 39 40 41 42 |
# File 'lib/query.rb', line 38 def get_result_can result_can = find_child RESULT result_can = Gloo::Objs::Alias.resolve_alias( @engine, result_can ) return result_can end |
#log_query(sql, params) ⇒ Object
Write the query to the log.
126 127 128 129 |
# File 'lib/query.rb', line 126 def log_query sql, params @engine.log.info "SQL PARAMS: #{params}" if params @engine.log.info "SQL: #{sql}" end |
#msg_run ⇒ Object
Run the query and process the results.
83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/query.rb', line 83 def msg_run db = db_obj return unless db begin clear_results log_query sql_value, param_array result = db.query( sql_value, param_array ) process_result( result, db ) rescue => e @engine.log_exception e return end end |
#run_query ⇒ Object
Run the query and return the results.
102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 |
# File 'lib/query.rb', line 102 def run_query db = db_obj return unless db begin log_query sql_value, param_array db_start = ::Time.now result = db.query( sql_value, param_array ) db_done = ::Time.now elapsed = ( ( db_done - db_start ) * 1000.0 ).round(2) app = @engine.running_app app.add_db_time elapsed if app return result rescue => e @engine.log_exception e return end end |
#simple_list? ⇒ Boolean
Should the output be put in a simple list?
139 140 141 142 143 144 |
# File 'lib/query.rb', line 139 def simple_list? o = find_child SIMPLE_LIST return false unless o return o.value end |