9.4立即获取所有数据项

除了使用模式fetchone()解释了第9.3节“使用数据集”,它使应用程序能够逐个消耗数据项,X devapi还提供了一种模式fetchall(),将数据的所有数据项传递给应用程序的列表。不同的X devapi实现使用适当的数据类型来获取列表的编程语言。由于使用了不同的数据类型,因此支持语言的本机构构造以访问列表元素。以下示例假定测试架构存在,并且员工表中存在mytable.

var myresult = mytable.select([''名字','年龄'])。其中('名称(如:name')。绑定('name','l%')。执行();var myrows = myresult.fetchall();for(myrows的索引){print(myrows [index] .name +“是”+ myrows [index] .age +“岁”。);}

混合时fetchone()fetchall()从一个数据读取读取记住,请记住每一个呼叫fetchone()或者fetchall()消耗返回的数据项。无法再次要求消耗的项目。例如,如果应用程序调用fetchone()要获取数据集的第一个数据项,则随后调用fetchall()返回最后一个数据项。第一个项目不是返回的数据项列表的一部分fetchall()。同样,在呼叫时fetchall()再次在先前调用之后设置数据集,第二个呼叫返回空集合。

指某东西的用途fetchall()强制连接器在列表中构建内存中的所有项目的列表可以传递给应用程序。列表的寿命是独立于生产它的数据集的生命。

异步查询执行将在发出查询并在从服务器接收任何回复之前返回给调用者的控制。打电话fetchall()要读取由异步查询执行产生的数据项可能会阻止呼叫者。fetchall()在从服务器读取结果之前,无法将控件返回到呼叫者。