2016-04-15 4 views
0

Никогда не пробовал это раньше, Я пытаюсь выполнить sql-запрос из определения шага Ruby Cucumber Step. Не уверен, что делать после подключения.Выполнение sql-запроса из Ruby Cucumber Шаг определения

Connection (Работы)

Тогда (/^TC-0001-Bill-Of-Laiding Query onleLisa (Lisa_One) для доступа к существующему Билля о laiding порядка $ /) сделать

conn = DBI.connect('DBI:ODBC:GPAutomation','XXXXX','XXXXX') 
conn.connected? 

Framework Setup 

require 'rubygems' 
require 'watir-webdriver' 
require 'watir' 
require 'rspec' 
require 'cucumber' 
require 'selenium-webdriver' 
require 'win32ole' 
require 'rufus/scheduler' 
require 'yaml' 
require 'dbi' 


The Query that I want to execute 

select h.bol_id, * from bol_header h (nolock) 
inner join bol_header_info hi (nolock) on h.bol_id = hi.bol_id 
where h.facility_id = '505' and h.Status = 'O' and hi.order_type = 'S' 

Любой Pro советы были бы весьма полезны ...

+0

Возможно, вы захотите проверить продолжение - http://sequel.jeremyevans.net/. Чтобы запустить SQL-запросы - http://sequel.jeremyevans.net/rdoc/files/README_rdoc.html#label-Arbitrary+SQL+queries. – alannichols

+0

И подключиться к вашей БД - http://sequel.jeremyevans.net/rdoc/files/doc/opening_databases_rdoc.html#label-Using+the+Sequel.connect+method – alannichols

ответ

0

Вы не сказали нам свою базовую базу данных. Предполагая, что это программное обеспечение SQLite3. вы бы

gem install sqlite3 

рубин код будет выглядеть следующим образом:

require 'rubygems' 
require 'sqlite3' 

DBNAME = "hello.sqlite" 
File.delete(DBNAME) if File.exists?DBNAME 

DB = SQLite3::Database.new(DBNAME) 
DB.execute("CREATE TABLE testdata(class_name, method_name)") 

# Looping through some Ruby data classes 
insert_query = "INSERT INTO testdata(class_name, method_name) VALUES(?, ?)" 

[Numeric, String, Array, IO, Kernel, SQLite3, NilClass, MatchData].each do |klass| 
    puts "Inserting methods for #{klass}" 

    # a second loop: iterate through each method 
    klass.methods.each do |method_name| 
    # Note: method_name is actually a Symbol, so we need to convert it to a String 
    # via .to_s 
    DB.execute(insert_query, klass.to_s, method_name.to_s) 
    end 
end 

Я вытащил это из Dan Nguyen веб-страницы. Посмотрите там еще.

+0

Спасибо за ваш ответ ... Это SQL – KWC

+0

Попытка выполнить сырой sql с помощью Sequel ... – KWC

+0

@ user3233238 Сообщите нам двигатель базы данных. Например. Oracle, MySql, Microsoft SQL Server, DB2, Microsoft Access, SQLLite и т. Д.,. Мой совет - google <ваш SQL-движок> ** пример ruby ​​** – MikeJRamsey56