Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

pymssql menjalankan prosedur tersimpan tetapi tidak mengembalikan hasil

Saya telah berhasil menyelesaikan masalah. Memanggil conn.commit() membuat kursor kehilangan hasilnya. Saya mungkin salah membaca beberapa dokumentasi pymssql dan menambahkan baris itu secara tidak sengaja - kode berfungsi sempurna tanpanya.

EDIT :Saya perhatikan setelah saya membuat perubahan ini, prosedur tersimpan akan mengembalikan hasil namun bagian penyisipan/pembaruan prosedur tidak disimpan. Sekarang jelas bagi saya apa conn.commit() sedang melakukan. Jika prosedur tersimpan Anda mengembalikan hasil DAN membuat perubahan pada database, Anda perlu memanggil conn.commit() setelah Anda mengambilnya.

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. Temukan HANYA Huruf Kapital dalam kata melalui kueri IN SQL Server

  2. Apakah ada cara untuk mendapatkan hasil yang berbeda untuk kueri SQL yang sama jika datanya tetap sama?

  3. Masalah dengan T-SQL TRY CATCH?

  4. Bagaimana cara mengecualikan catatan dengan nilai tertentu di sql pilih

  5. Dapatkan kebalikan dari gabungan?