Maison > Article > développement back-end > Introduction aux méthodes d'exécution de procédures stockées et d'obtention de valeurs de retour en Python
Cet article présente principalement la méthode d'exécution des procédures stockées et d'obtention de la valeur de retour des procédures stockées en Python. Il résume et analyse les méthodes courantes d'appel des procédures stockées en Python et les précautions d'opération associées sous forme d'exemples. peut s'y référer
L'exemple de cet article décrit la méthode d'exécution des procédures stockées et d'obtention de la valeur de retour des procédures stockées en Python. Partagez-le avec tout le monde pour votre référence, les détails sont les suivants :
Comment exécuter des procédures stockées dans Pathon ? Vous pouvez utiliser la méthode suivante :
La définition de la procédure stockée est essentiellement la suivante :
ALTER procedure [dbo]. [mysp] @Station varchar ( 50), @SN varchar ( 50), @Info varchar ( 500) output , @Msg varchar ( 500) output
1. Utilisez 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. Utilisez 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
Résumé :
1. adodbapi est simple, il n'est pas nécessaire d'écrire une série d'instructions SQL, mais je ne parviens pas à obtenir le code d'erreur renvoyé, je ne peux obtenir que le message d'erreur renvoyé, ou peut-être que je n'ai pas trouvé la méthode
2. pymssql est l'opposé du premier, vous pouvez obtenir une valeur de retour et un message d'erreur, mais écrire une instruction SQL.
Ici, nous nous concentrons sur la méthode d'utilisation de pymssql
cur.execute("exec stocké procédure nom@paramètre 1=XXX, @paramètre 2='YYY'...") # Si une telle phrase n'existe pas, les données ne prennent pas vraiment effet. Par exemple, la procédure stockée exécute insert. Sans validation, les données ne seront pas réellement insérées
Généralement, de nombreuses exigences liées à l'utilisation de procédures stockées peuvent être remplies. à travers ces trois étapes
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!