プッシュボタンの夜間デプロイ用のdbスクリプトのデプロイを自動化しています。私の最初のアプローチは、Windowsターミナルでsqlcmdを使用し、結果をtxtファイルに保存し、それを解析してスクリプトが成功したことを確認することでした。ファイルの解析と戻りコードの検索には問題があったため、TinyTdsを使用しました。これが私のコードです:
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)