PDF (美国信纸) - 1.2Mb
PDF (A4) - 1.2Mb
除了使用 fetchOne()
的模式,如在 第 9.3 节,“使用数据集” 中解释的那样,它允许应用程序逐个使用数据项,X DevAPI 还提供了一种使用 fetchAll()
的模式,它将数据集的所有数据项作为一个列表传递给应用程序。不同的 X DevAPI 实现使用它们编程语言的适当数据类型来表示列表。由于使用不同的数据类型,因此支持使用语言的本机结构来访问列表元素。以下示例假设 test
模式存在,并且 myTable
中存在员工表。
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()
会迫使连接器在将列表作为整体传递给应用程序之前,在内存中构建所有项目的列表。列表的生存期独立于生成它的数据集的生存期。