Class: DataObject::Postgres::Reader
- Inherits:
-
Reader
- Object
- Reader
- DataObject::Postgres::Reader
- Defined in:
- lib/do_postgres.rb
Instance Method Summary collapse
- #data_type_name(col) ⇒ Object
- #each ⇒ Object
- #get_index(name) ⇒ Object
-
#initialize(db, reader) ⇒ Reader
constructor
A new instance of Reader.
- #item(idx) ⇒ Object
- #name(col) ⇒ Object
- #next ⇒ Object
- #null?(idx) ⇒ Boolean
- #real_close ⇒ Object
Constructor Details
#initialize(db, reader) ⇒ Reader
Returns a new instance of Reader.
41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# File 'lib/do_postgres.rb', line 41 def initialize(db, reader) @reader = reader case Postgres_c.PQresultStatus(reader) when Postgres_c::PGRES_COMMAND_OK @records_affected = Postgres_c.PQcmdTuples(reader).to_i close when Postgres_c::PGRES_TUPLES_OK @fields, @field_types = [], [] @field_count = Postgres_c.PQnfields(@reader) i = 0 while(i < @field_count) @field_types.push(Postgres_c.PQftype(@reader, i)) @fields.push(Postgres_c.PQfname(@reader, i)) i += 1 end @rows = Postgres_c.PQntuples(@reader) @has_rows = @rows > 0 @cursor = 0 @state = STATE_OPEN end end |
Instance Method Details
#data_type_name(col) ⇒ Object
67 68 69 |
# File 'lib/do_postgres.rb', line 67 def data_type_name(col) end |
#each ⇒ Object
92 93 94 95 96 97 98 99 |
# File 'lib/do_postgres.rb', line 92 def each return unless has_rows? while(true) do yield break unless self.next end end |
#get_index(name) ⇒ Object
76 77 78 79 |
# File 'lib/do_postgres.rb', line 76 def get_index(name) super @fields.index(name) end |
#item(idx) ⇒ Object
86 87 88 89 90 |
# File 'lib/do_postgres.rb', line 86 def item(idx) super val = Postgres_c.PQgetvalue(@reader, @cursor, idx) typecast(val, @field_types[idx]) end |
#name(col) ⇒ Object
71 72 73 74 |
# File 'lib/do_postgres.rb', line 71 def name(col) super Postgres_c.PQfname(@reader, col) end |
#next ⇒ Object
101 102 103 104 105 106 107 108 109 110 |
# File 'lib/do_postgres.rb', line 101 def next super if @cursor >= @rows - 1 @cursor = nil close return nil end @cursor += 1 true end |
#null?(idx) ⇒ Boolean
81 82 83 84 |
# File 'lib/do_postgres.rb', line 81 def null?(idx) super Postgres_c.PQgetisnull(@reader, @cursor, idx) != 0 end |
#real_close ⇒ Object
63 64 65 |
# File 'lib/do_postgres.rb', line 63 def real_close Postgres_c.PQclear(@reader) end |