我正在为按钮夜间部署自动部署数据库脚本。我的第一种方法是在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)
答案 0 :(得分:1)
我认为您的答案将依赖于您尝试提供给TinyTDS的SQL。也许批处理的格式不正确。您也可能只想result = client.execute(data).each
。