Tôi đã chọn các giá trị từ cơ sở dữ liệu sqlite3 và in số lượng con trỏ. Sau đó, nó đưa ra một lỗi "đối tượng 'int' không thể gọi được"
strq="select * from tblsample1"
self.con = sqlite3.connect['mydb.sqlite']
self.cur = self.con.cursor[]
self.cur.execute[strq]
print[self.cur.rowcount[]]
đưa ra một lỗi
TypeError: đối tượng 'int' không thể gọi được
Đã hỏi ngày 4 tháng 7 năm 2011 lúc 9:02Jul 4, 2011 at 9:02
2
Đọc tài liệu cẩn thận! ROWCount là một thuộc tính nên đúng mã của bạn thành:
print[self.cur.rowcount]
Con trỏ.RowCount Mặc dù lớp con trỏ của mô -đun SQLITE3 thực hiện thuộc tính này, nhưng cơ sở dữ liệu hỗ trợ riêng để xác định các hàng của các hàng bị ảnh hưởng bởi các hàng được chọn.
Điều này bao gồm các câu lệnh chọn vì chúng tôi không thể xác định số lượng hàng mà một truy vấn được tạo cho đến khi tất cả các hàng được tìm nạp.
Vì vậy, bạn có thể sửa đổi mã của mình để sử dụng Fetchall:
self.cur.execute[strq]
data = self.cur.fetchall[]
print len[data]
Đã trả lời ngày 4 tháng 7 năm 2011 lúc 9:07Jul 4, 2011 at 9:07
Artsiom Rudzenkaartsiom RudzenkaArtsiom Rudzenka
Phù hiệu vàng 27.2k4 Huy hiệu bạc51 Huy hiệu đồng4 gold badges33 silver badges51 bronze badges
7
print[self.cur.rowcount]
self.cur.rowcount
là một số nguyên, không phải là một hàm.
//docs.python.org/library/sqlite3.html#sqlite3.Cursor.rowcount
Chỉnh sửa
Tài liệu trả lời chỉnh sửa của bạn:
Theo yêu cầu của thông số API Python DB, thuộc tính ROWCount là -1 trong trường hợp không thực thi [] đã được thực hiện trên con trỏ hoặc hàng của hoạt động cuối cùng không thể xác định được bởi giao diện.
Điều này bao gồm các câu lệnh chọn vì chúng tôi không thể xác định số lượng hàng mà một truy vấn được tạo cho đến khi tất cả các hàng được tìm nạp.
Vì vậy, bạn có thể sửa đổi mã của mình để sử dụng Fetchall:Jul 4, 2011 at 9:05
Đã trả lời ngày 4 tháng 7 năm 2011 lúc 9:07Jacob
Artsiom Rudzenkaartsiom Rudzenka6 gold badges76 silver badges81 bronze badges
7
Phù hiệu vàng 27.2k4 Huy hiệu bạc51 Huy hiệu đồng
print[self.cur.rowcount]
print[self.cur.rowcount]
Jul 4, 2011 at 9:06
self.cur.rowcount
là một số nguyên, không phải là một hàm.Blair
Chỉnh sửa7 gold badges45 silver badges56 bronze badges
0
strq="select count[*] from tblsample1"
self.con = sqlite3.connect['mydb.sqlite']
self.cur = self.con.cursor[]
rows = self.cur.execute[strq]
print[row]
Tài liệu trả lời chỉnh sửa của bạn:Jan 21, 2019 at 2:45
0
Cơ sở dữ liệu nguồn mở phổ biến nhất thế giới
10.5.14 & nbsp; mysqlcursor.rowcount thuộc tính
Cú pháp:
count = cursor.rowcount
Thuộc tính chỉ đọc này trả về số lượng hàng được trả về cho các câu lệnh SELECT
hoặc số lượng hàng bị ảnh hưởng bởi các câu lệnh DML như
print[self.cur.rowcount]
0 hoặc print[self.cur.rowcount]
1. Ví dụ, xem phần & nbsp; 10.5.4, phương thức mysqlcursor.execute [] Phương thức.Đối với con trỏ không có bộ phận, số lượng hàng không thể biết được trước khi các hàng đã được tìm nạp. Trong trường hợp này, số lượng hàng là -1 ngay sau khi thực thi truy vấn và được tăng lên khi các hàng được tìm nạp.
Thuộc tính rowcount
giống như hàm API
print[self.cur.rowcount]
3 C; Xem mysql_affed_rows [].