Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

pymssql изпълнява съхранена процедура, но не връща резултати

Успях да реша проблема. Извикване на conn.commit() караше курсора да губи своите резултати. Вероятно съм прочел погрешно част от документацията на pymssql и съм добавил този ред по погрешка - кодът работи перфектно и без него.

РЕДАКТИРАНЕ :Забелязах, че след като направих тази промяна, съхранената процедура ще върне резултатите, но частите за вмъкване/актуализация на процедурата не се запазват. Сега ми е ясно какво е conn.commit() правеше. Ако вашата съхранена процедура връща резултати И прави промени в базата данни, трябва да извикате conn.commit() след като ги вземете.

server = 'MY\SERVER'
user = 'user'
password = 'password'
database = 'db'
proc = 'checkin'

with pymssql.connect(server, user, password, database) as conn:
    with conn.cursor() as cursor:
        cursor.callproc(proc, (eha, ip, url, alias, location, rotation))
        cursor.nextset()
        results = cursor.fetchall()
        conn.commit()
        f = open('/var/wwwdata/locations.txt', 'w')
        for result in results:
            print result[0]
            f.write(result[0])
        f.close()



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Заявка за SQL трансформация

  2. SSIS Excel Import Forcing Неправилен тип колона

  3. T-SQL Как да предоставите роля на потребителя

  4. Условно JOIN изявление SQL Server

  5. Как да създадете съхранена процедура със schemabinding?