Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

pymssql thực thi thủ tục được lưu trữ nhưng không trả về kết quả

Tôi đã giải quyết được vấn đề. Đang gọi conn.commit() đang làm cho con trỏ mất kết quả. Tôi có thể đã đọc nhầm một số tài liệu pymssql và đã nhầm lẫn thêm dòng đó - mã hoạt động hoàn hảo mà không có nó.

CHỈNH SỬA :Tôi nhận thấy sau khi tôi thực hiện thay đổi này, thủ tục được lưu trữ sẽ trả về kết quả tuy nhiên các phần chèn / cập nhật của thủ tục không được lưu. Bây giờ tôi đã rõ conn.commit() là gì Đang làm. Nếu thủ tục được lưu trữ của bạn trả về kết quả VÀ thực hiện các thay đổi đối với cơ sở dữ liệu, bạn cần gọi conn.commit() sau khi bạn tìm nạp chúng.

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. Câu lệnh xóa SQL Server:Cách xóa một hoặc nhân hàng khỏi bảng

  2. Cách đơn giản nhất để thực hiện tự tham gia đệ quy?

  3. Phương pháp tiếp cận tốt nhất cho tính năng tự động tăng trưởng là gì

  4. Giữa MS SQL Server có bao gồm các ranh giới phạm vi không?

  5. SQL CHỌN HH:MM - HH:MM