如何从sql_query
获取输出?
import pyodbc
sql_query = "print 'Hello World'"
conn = pyodbc.connect("DRIVER={SQL Server};
SERVER=myserver;
DATABASE=mydatabase;
UID=myusername;
PWD=mypassword")
cur = conn.cursor()
cur.execute(sql_query)
cur.commit()
for row in cursor.fetchall():
print row
到目前为止,我认为SQL打印与通常的结构化响应无关?
http://www.easysoft.com/developer/languages/perl/sql_server_unix_tutorial.html#print_statement_status_messages 与我在 Perl 中尝试做的事情类似。
我能看到的最接近的是可选的:http://www.python.org/dev/peps/pep-0249/#cursor-messages 所以我想它只是没有实现?
运行查询 PRINT 'Hello World' 时,输出作为控制台输出(字符串)返回,fetchall 正在查看查询中的结果集(对象)。RAISERROR 是一种错误条件,可以停止进程。我并不是说这不是解决方案,但也许您只是想打印一些反馈而不会创建错误条件。
我认为您可以通过更改来实现您想要的结果
[打印"你好世界"]到[选择"你好世界"]
我认为这将在结果集中创建一行数据,其中包含您想要的文本,这些数据应该显示在 fetchall 中,并查看您是否得到预期的结果。
希望这有助于提供您可以尝试的替代方案!
使用 RAISERROR over PRINT。将其与NOWAIT一起使用可立即获得输出。我不知道如何在python中处理这个问题,但是在 ADO.NET 中,您可以使用SqlConnection上的InfoMessage事件。也许在Python中也有类似的东西。