用db.cursor(sql) 函数,可以将数据库中返回的数据转为游标,如:
|
A |
1 |
=demo.cursor("select * from EMPLOYEE") |
2 |
=A1.fetch(100) |
3 |
=A1.fetch(100) |
4 |
>A1.close() |
在A1中创建数据库游标,A2在游标中获取前100条记录如下:
用fetch获取游标中的数据时,会构成序表返回。
当在A3中再次读取100条记录时,由于用游标读取数据时只会从前向后单次遍历,因此会继续从结果集中获取数据:
从员工序号中可以发现,A3中读取的数据是从第101位员工开始的。在本例中只是简单用fetch读取游标中的数据,集算器中游标更多的使用方法,可以阅读7.2游标使用。
当取数完成后,如果游标中的数据并未全部读出,需要用cs.close() 关闭游标。将游标及时关闭,这对数据库游标尤其重要。由于数据库游标是从数据库来获取数据的,如果游标不关闭,与数据库的连接会一直存在,不但会占用不必要的资源,还有可能造成数据库中游标超过限制的错误。
与用db.query() 函数查询数据时类似,在建立数据库游标时,也可以使用参数,如:
|
A |
1 |
=demo.cursor("select EID, NAME, SURNAME, GENDER, STATE from EMPLOYEE where GENDER=? and EID>?","F",100) |
2 |
=A1.fetch() |
在SQL语句中,需要使用的参数用 ? 代替,并在后面依次输入,用逗号分隔。A1中的游标返回EID在100以上的女性员工,A2中返回游标中的所有数据如下:
在A2中使用fetch时,未指定数据条数,此时将返回游标中的所有数据,当游标中的所有数据读取完成后,游标将自动关闭,此时可以不再调用cs.close()。