Вызов хранимой процедуры python

Я пишу сценарий, чтобы вытащить информацию / обновить сервер MsSQL, и я могу запустить мой один вызов хранимой процедуры, но не мой второй в функции updateDB. вот мой код, скрипт работает нормально, никаких кодов ошибок

import pyodbc import json import argparse import cgi, cgitb #GLOBALS BUILDCODE = " " deptCODE = 0 bldgCODE = " " def getCodes(conn, building, department): #just for testing departmentt = 'COMPUTER SCIENCE' buildingt = 'PEARCE HALL' #geting the building code from db cursorBuild = conn.cursor() cursorBuild.execute("select * from dbo.building where name = '%s'" % buildingt) bldgRow = cursorBuild.fetchall() cursorBuild.close() bldgCode = bldgRow.pop(0) global bldgCODE bldgCODE = bldgCode.code #getting the dept code cursorDept = conn.cursor() cursorDept.execute("execute dbo.GetCode_ByDepartment @department = '%s'" % departmentt) deptRow = cursorDept.fetchall() cursorDept.close() deptCode = deptRow.pop(0) global deptCODE deptCODE = deptCode.code print type(deptCODE) print deptCODE #returning the values return (bldgCode, deptCode) def updateDB(conn, tag, room, updater): #updating the database updateCursor = conn.cursor() print deptCODE print bldgCODE #this will pass params just has them hard codded for testing conn.execute("exec dbo.UpdateCheck_In @room = '400', @building = 'PE', @department = 307, @global_id = 'bacon', @tag = '120420'") if __name__ == "__main__": #connectin to the db with SQL Authentification conn = pyodbc.connect(driver = '{SQL Server}', server = '(local)', database = 'Inventory', uid = 'sa', pwd = 'p@$$w0rd123') #checking to see if you connected to the db or not if (conn == False): print "Error, did not connect to the database" else: #NEEDS THIS cgitb.enable cgitb.enable() # Create instance of FieldStorage form = cgi.FieldStorage() #get the data from the url that called it tag = form.getvalue('tagnum') building = form.getvalue('build') roomNum = form.getvalue('room') department = form.getvalue('dept') updater = form.getvalue('update') #check to see if item is in the db itemIsThere = conn.cursor() itemIsThere.execute("select * from dbo.check_in where tag = '120420';") print itemIsThere itemIsThere.close() #if the item in in the inventory if (itemIsThere != None): #getting the codes getCodes(conn, building, department) #calling the update function updateDB(conn, tag, roomNum, updater) else : pass conn.close() 

2 Solutions collect form web for “Вызов хранимой процедуры python”

Зафиксируйте свои изменения после запуска процедуры обновления:

 ... #this will pass params just has them hard coded for testing conn.execute("exec dbo.UpdateCheck_In @room = '400', @building = 'PE', @department = 307, @global_id = 'bacon', @tag = '120420'") conn.commit() 

В pyodbc.connect() autocommit отключен по умолчанию

нашел ответ всем, потому что я указал устаревший драйвер вместо нового для MsSQL 2008 heres код

  conn = pyodbc.connect(driver = '{SQL Server Native Client 10.0}', server = '(local)', database = 'Inventory', uid = 'sa', pwd = 'p@$$w0rd123',autocommit=True) 
  • Django с несколькими базами данных и конкретными маршрутизаторами приложений не может добавлять пользователей в MSSQL
  • Правильно ли привязка параметров в библиотеке pymssql?
  • PyODBC, cursor.execute () не будет вставлять параметры в строку SQL
  • Подключение к Microsoft SQL Server через pyODBC на Ubuntu
  • Pypyodbc: Не удается открыть ошибку lib 'FreeTDS': file not found ") при попытке подключения к SQL-серверу
  • Подключение к SQL Server 2012 с использованием sqlalchemy и pyodbc
  • Использование Sql Server с Django в производстве
  • Как добавить EOF в файл с помощью Perl или Python?
  • используя pyodbc на ubuntu для вставки поля изображения на SQL Server
  • Сервер Python и sql
  • Python vs C # /. NET - каковы основные отличия, которые следует учитывать при использовании одного для разработки большого веб-приложения?
  • Python - лучший язык программирования в мире.