PDF (美式信紙) - 1.2Mb
PDF (A4) - 1.2Mb
除了fetchOne()
的使用模式(如 第 9.3 節「使用資料集」 中所述)之外,該模式使應用程式能夠逐一取用資料項目,X DevAPI 還提供使用 fetchAll()
的模式,該模式會將資料集的所有資料項目作為清單傳遞給應用程式。不同的 X DevAPI 實作會針對其程式設計語言使用適當的資料類型作為清單。由於使用了不同的資料類型,因此支援該語言的原生結構來存取清單元素。以下範例假設存在 test
綱要,且 myTable
中存在 employee 表格。
myResult = myTable.select(['name', 'age']) \
.where('name like :name').bind('name','L%') \
.execute()
myRows = myResult.fetch_all()
for row in myRows:
print("%s is %s years old." % (row.name, row.age))
當混合使用 fetchOne()
和 fetchAll()
從一個資料集讀取時,請記住,每次呼叫 fetchOne()
或 fetchAll()
都會取用傳回的資料項目。取用的項目無法再次請求。例如,如果應用程式呼叫 fetchOne()
來提取資料集的第一個資料項目,則後續呼叫 fetchAll()
會傳回第二個到最後一個資料項目。第一個項目不屬於 fetchAll()
傳回的資料項目清單的一部分。同樣地,先前呼叫過 fetchAll()
後再次呼叫資料集的 fetchAll()
時,第二次呼叫會傳回空的集合。
使用 fetchAll()
會強制連接器在記憶體中建立所有項目的清單,然後才能將整個清單傳遞給應用程式。清單的生命週期獨立於產生該清單的資料集生命週期。