Method: DBGeni::Connector::Sybase#execute

Defined in:
lib/dbgeni/connectors/sybase.rb

#execute(sql, *binds) ⇒ Object



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