我正在为每晚的按钮部署自动化数据库脚本的部署。我的第一个方法是在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)

最佳答案

我认为您的答案将依赖于您试图提供给tinytds的sql。可能批处理的格式不对。你也可以做result = client.execute(data).each

08-26 08:51