Class: DBGeni::Connector::Sybase

Inherits:
Object
  • Object
show all
Defined in:
lib/dbgeni/connectors/sybase.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#connectionObject (readonly)

Returns the value of attribute connection.


15
16
17
# File 'lib/dbgeni/connectors/sybase.rb', line 15

def connection
  @connection
end

#databaseObject (readonly)

Returns the value of attribute database.


16
17
18
# File 'lib/dbgeni/connectors/sybase.rb', line 16

def database
  @database
end

Class Method Details

.connect(user, password, database, host = nil, port = nil) ⇒ Object

[View source]

18
19
20
# File 'lib/dbgeni/connectors/sybase.rb', line 18

def self.connect(user, password, database, host=nil, port=nil)
  self.new(user, password, database, host, port)
end

Instance Method Details

#commitObject

[View source]

62
63
64
# File 'lib/dbgeni/connectors/sybase.rb', line 62

def commit
  @connection.commit
end

#date_as_string(dtm) ⇒ Object

[View source]

74
75
76
# File 'lib/dbgeni/connectors/sybase.rb', line 74

def date_as_string(dtm)
  dtm.strftime '%Y-%m-%d %H:%M:%S'
end

#date_placeholder(bind_var) ⇒ Object

[View source]

70
71
72
# File 'lib/dbgeni/connectors/sybase.rb', line 70

def date_placeholder(bind_var)
  "cast(? as datetime)"
end

#disconnectObject

[View source]

22
23
24
# File 'lib/dbgeni/connectors/sybase.rb', line 22

def disconnect
  @connection.close
end

#execute(sql, *binds) ⇒ Object

[View source]

26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
# File 'lib/dbgeni/connectors/sybase.rb', line 26

def execute(sql, *binds)
  query = @connection.prepare_statement(sql)
  binds.each_with_index do |b, i|
    if b.is_a?(String)
      query.setString(i+1, b)
    elsif b.is_a?(Fixnum)
      query.setInt(i+1, b)
    end
  end
  results = Array.new
  unless sql =~ /^\s*select/i
    query.execute()
  else
    rset = query.execute_query()
    cols = rset..get_column_count
    while(r = rset.next) do
      a = Array.new
      1.upto(cols) do |i|
        a.push rset.get_object(i)
      end
      results.push a
    end
  end
  query.close
  results
end

#pingObject

[View source]

53
54
55
56
57
58
59
60
# File 'lib/dbgeni/connectors/sybase.rb', line 53

def ping
  results = self.execute('select 1')
  if results.length == 1
    true
  else
    false
  end
end

#rollbackObject

[View source]

66
67
68
# File 'lib/dbgeni/connectors/sybase.rb', line 66

def rollback
  @connection.rollback
end