Dieser Artikel stellt hauptsächlich die Methode zum Ausführen gespeicherter Prozeduren und zum Abrufen des Rückgabewerts gespeicherter Prozeduren in Python vor. Er fasst die gängigen Methoden zum Aufrufen gespeicherter Prozeduren und die damit verbundenen Vorsichtsmaßnahmen in Form von Beispielen zusammen kann darauf verweisen
Das Beispiel in diesem Artikel beschreibt die Methode zum Ausführen gespeicherter Prozeduren und zum Abrufen des Rückgabewerts gespeicherter Prozeduren in Python. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:
Wie führe ich gespeicherte Prozeduren in Pathon aus? Sie können die folgende Methode verwenden:
Die Definition der gespeicherten Prozedur lautet im Wesentlichen wie folgt:
ALTER procedure [dbo]. [mysp] @Station varchar ( 50), @SN varchar ( 50), @Info varchar ( 500) output , @Msg varchar ( 500) output
1. Verwenden Sie adodbapi
from adodbapi import connect server = 'dbserver' user = 'username' password = 'password' database = 'database' sp = 'sp' station = 'station' sn = 'sn' try : db = connect('Provider=SQLOLEDB.1 ;Data Source=%s;Initial Catalog=%s;/ User ID=%s;Password=%s;'%(server, database, user, password)) except Exception, e: print e else : cur = db.cursor() msg = cur.callproc(sp, (station, sn)) #参数与存储过程有关 if len(msg) > 1 : if msg[-1 ] is None : print 'sn is ok. Can be test at this station' else : print msg[-1 ] finally : try : db.close() except : pass
2. Verwenden Sie pymssql
from pymssql import connect server = 'dbserver' user = 'user' password = 'password' database = 'database' sp = 'sp' station = 'station' sn = 'sn' sql = ['set nocount on' ] sql.append('declare @Msg varchar(500)' ) sql.append('declare @return_value varchar' ) sql.append("exec @return_value = %s @Station = '%s', @SN = '%s', @Info = '@Info', @Msg = @Msg output" ) sql.append('select @Msg, @return_value' ) sql = '/n' .join(sql) % (sp, station, sn) def ffchk(server, user, password, database, sql): try : db = connect(host = server, database = database, user = user, password = password, login_timeout = 10 ) cur = db.cursor() cur.execute(sql) except Exception, e: print e else : cur.nextset() # 要加上这句才能通过fetch函数取到值 注意:这语句在Python2.7对应的pymssql版本中是错误!!! print cur.fetchone() finally : try : db.close() except : pass
Zusammenfassung:
1. adodbapi ist einfach, es ist nicht nötig, eine Reihe von SQL-Anweisungen zu schreiben, aber ich kann den zurückgegebenen Fehlercode nicht erhalten, ich kann nur die zurückgegebene Fehlermeldung erhalten, oder vielleicht habe ich die Methode nicht gefunden
2. pymssql ist das Gegenteil des ersten, Sie können einen Rückgabewert und eine Fehlermeldung erhalten, aber eine SQL-Anweisung schreiben.
Hier konzentrieren wir uns auf die Methode zur Verwendung von pymssql
cur.execute("exec Stored Procedure Name@Parameter 1=XXX, @Parameter 2='YYY'...") # If Wenn es keinen solchen Satz gibt, werden die Daten nicht wirklich wirksam. Wenn die gespeicherte Prozedur beispielsweise „Einfügen“ ausführt, werden die Daten nicht tatsächlich eingefügt.
Im Allgemeinen können viele Anforderungen für die Verwendung gespeicherter Prozeduren erfüllt werden durch diese drei Schritte
Das obige ist der detaillierte Inhalt vonEinführung in Methoden zum Ausführen gespeicherter Prozeduren und zum Erhalten von Rückgabewerten in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!