2012-06-25 72 views
3

我正在爲按鈕夜間部署自動部署db腳本。我的第一個方法是在Windows終端上使用sqlcmd,將結果保存到txt文件,並解析它以確保腳本成功。解析文件並找到返回代碼是有問題的,所以我轉向了TinyTds。這裏是我的代碼:使用TinyTds解析和運行.sql腳本Ruby Gem

 client = TinyTds::Client.new(:username => DB_USER, :password => DB_PASSWORD, :dataserver => DB_SERVERNAME, :timeout => 1200) 
     result = client.execute(IO.read(filename)) 
     puts result.return_code 

息率nil或者以下錯誤(取決於.SQL腳本的內容)

run_sql.rb:24:in `execute': Attempt to initiate a new Adaptive Server operation with results pending (TinyTds::Error) 

更改

result = client.execute(IO.read(filename)) 

result = client.execute(IO.read(filename)).do 

收益率

run_sql.rb:26:in `do': Incorrect syntax near 'go'. (TinyTds::Error) 
+0

我也得到這個... 試圖做一個db-migrate來創建一個複雜的視圖...只是爲了保持數據庫在Rails中的變化...但我找不出如何解決這個問題。 –

回答

1

我認爲您的答案將依賴於您嘗試提供給TinyTDS的SQL。也許批處理沒有正確格式化。你也可能只想做result = client.execute(data).each