在任何人的情況下運行到這一點: 我引用user manual:
最直接的方法來檢索結果集是使用查詢::店()。這將返回一個StoreQueryResult對象 ,它源自std :: vector,使其成爲Rows的隨機訪問容器。反過來, 每個Row對象就像一個String對象的std :: vector,一個用於結果集中的每個字段。因此,您可以 將StoreQueryResult視爲一個二維數組:您可以通過簡單地說 result[1][4]
來獲得第二行的第5個字段。您還可以按字段名稱訪問行元素,如下所示:result[2]["price"]
。
和
與查詢結果的工作的一個不太直接的方法就是使用Query ::使用(),它返回一個UseQueryResult對象。 這個類的作用類似於STL輸入迭代器,而不是std :: vector:你一次一行地瀏覽結果集處理 ,總是前進。您無法在結果集中四處搜索,並且在找到結尾之前無法知道集合中有多少個結果。在付費給您帶來的不便之處,您可以獲得更好的內存效率,因爲整個結果集不需要存儲在RAM中。當您需要較大的結果集時,這非常有用。
一個建議發現here:http://lists.mysql.com/plusplus/9047
是使用COUNT(*)查詢,獲取該結果,然後再次使用Query.use。爲避免計數不一致,可以將這兩個查詢包裝在一個事務中,如下所示:
START TRANSACTION;
BEGIN;
SELECT COUNT(*) FROM myTable;
SELECT * FROM myTable;
COMMIT;
這種方法對我很好。 –