How can I find count of returned result sets?

65 views
Skip to first unread message

Kris Budde

unread,
Oct 13, 2021, 2:36:43 PM10/13/21
to pymssql
Hi,

I've found the following example in the documentation.

```
conn.execute_query('sp_spaceused') # sp_spaceused without arguments returns 2 result sets
res1 = [ row for row in conn ] # 1st result
res2 = [ row for row in conn ] # 2nd result
```

I'm currently writing a ansible module for querying a mssql database using pymssql. There I have to handle passed scripts where I don't know the number of returned result sets.
Nevertheless I want to return all of them.
How can I can get the number of result sets after one execute?

e.g. this does not work as the second query does not return any data:
```
some_query = """
SELECT name, state_desc FROM sys.databases WHERE name = msdb
SELECT name, state_desc FROM sys.databases WHERE name = 'DoesNotexist'
SELECT name, state_desc FROM sys.databases WHERE name = msdb
"""
cursor.execute(some_query)
qry_result = []
rows = cursor.fetchall()
while rows:
    qry_result.append(rows)
    rows = cursor.fetchall()
query_results.append(qry_result)
```

Thank you in advance

Kris
Reply all
Reply to author
Forward
0 new messages