Heim  >  Artikel  >  Backend-Entwicklung  >  Einführung in Methoden zum Ausführen gespeicherter Prozeduren und zum Erhalten von Rückgabewerten in Python

Einführung in Methoden zum Ausführen gespeicherter Prozeduren und zum Erhalten von Rückgabewerten in Python

黄舟
黄舟Original
2018-05-24 11:06:214320Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn