import traceback import pyodbc db = pyodbc.connect (r"Driver={SQL Server};Server=SVR17;Database=TDI;TrustedConnection=Yes") def test_sql (sql): q = db.cursor () try: q.execute (sql) print q.fetchall () print q.nextset () print q.fetchall () except pyodbc.Error: print "ERROR:", traceback.format_exc () finally: q.close () print print "SELECT-SELECT" test_sql (""" SELECT 1 SELECT 2 """) print print "SELECT-INSERT-SELECT" test_sql (""" DECLARE @t TABLE (i INT) SELECT 1 INSERT INTO @t VALUES (1) SELECT 2 """) print print "SELECT-INSERT-SELECT NOCOUNT" test_sql (""" SET NOCOUNT ON DECLARE @t TABLE (i INT) SELECT 1 INSERT INTO @t VALUES (1) SELECT 2 """) print print "SELECT-PRINT-SELECT" test_sql (""" SELECT 1 PRINT 'Hello' SELECT 2 """) print print "SELECT-RAISERROR-SELECT" test_sql (""" SELECT 1 RAISERROR ('ERROR', 16, 1) SELECT 2 """)