2015-11-06 29 views
1
  1. 此代码的工作原理但不知道如何获得输出?使用pymssql,如何调用带输出的存储过程

    storedProcedure = "dbo.myproc" 
    cursor = conn.cursor() 
    query = """DECLARE @test_suite_dispatch_id int; 
          exec {sp} @test_suite_id={id}, 
          @test_suite_dispatch_id = @test_suite_dispatch_id OUTPUT 
         """.format(sp=storedProcedure, id=TestSuiteData['TestSuite_ID']) 
    print(query) 
    cursor.execute(query) 
    cursor.close() 
    
  2. 如何使用pymssql的callproc方法获得上述工作?

    此代码不起作用:

    out = None 
    cursor.callproc(storedProcedure, 
           (TestSuiteData['TestSuite_ID'], out)) 
    

    这不起作用或者:

    cursor.callproc(storedProcedure, 
           [(TestSuiteData['TestSuite_ID']), out]) 
    

    我也试过:

    cursor.callproc(storedProcedure, 
           [(TestSuiteData['TestSuite_ID']), pymssql.output(int)]) 
    

    cursor.callproc(storedProcedure, 
           [(TestSuiteData['TestSuite_ID']), pymssql.output(long)]) 
    

你们认为什么?

来源:https://stackoverflow.com/a/192032/2965993

+0

我想弄清楚同样的事情......我坚持在这:https://github.com/pymssql/pymssql/blob/98fce86951945e63ee365af4e57336856af681c4/tests/test_sprocs.py#L76-L91 –

回答

2

好吧,我想通了。

取决于你的输出将是,这里就是我没有和它的工作原理:

msg = cursor.callproc(store_proc, (file_name, '0x0a', pymssql.output(str))) 
print(msg[2]) 

显然,我的存储过程中接受不同的值,但是你可以用它运行。

相关问题