2008-11-07 5 views
8

J'utilise python \ pyodbc et j'aimerais accéder au second jeu de résultats d'une procédure stockée. Aussi près que je peux dire, pyodbc ne supporte pas plusieurs jeux de résultats. En outre, je ne peux pas modifier la procédure stockée. Existe-t-il des options pour accéder au second ensemble de résultats à l'aide de SQL ou d'une autre solution de rechange? Peut-être créer une deuxième procédure stockée qui ne renvoie que le deuxième jeu de résultats de la première?Accédez au second jeu de résultats de la procédure stockée avec SQL ou une autre solution de rechange? Python pyodbc

Répondre

0

Il existe plusieurs méthodes possibles here. Si les ensembles de résultats sont identiques, vous pouvez utiliser la méthode INSERT ... EXEC. Sinon, OPENQUERY pourrait fonctionner.

9

Pas besoin de rien de spécial. Il suffit d'utiliser nextset:


import pyodbc 

db = pyodbc.connect ("") 
q = db.cursor() 
q.execute (""" 
SELECT TOP 5 * FROM INFORMATION_SCHEMA.TABLES 
SELECT TOP 10 * FROM INFORMATION_SCHEMA.COLUMNS 
""") 
tables = q.fetchall() 
q.nextset() 
columns = q.fetchall() 

assert len (tables) == 5 
assert len (columns) == 10 

+0

http://code.google.com/p/pyodbc/wiki/Cursor#nextset – bernie

Questions connexes