我正在构建一个脚本来在数据库中存储一些数据。我第一次使用PostgeSQL,一切都按计划顺利进行。我在考虑PostgreSQl中游标的用法,如果我做了很多,而一个就足够了。但我不想把光标传递给我所有的SQL函数。在
这是我的简化例子。在
dbConn, dbCurs = openDataBase(config)
doSomeThing(dbCurs, name, age, listOfJohns)
def doSomething(dbCurs, name, age, listOfPoeple):
listOfPoeple SQLnrOfPeopleNamed(dbCurs, name, age)
#here some fine checking if there's a list
#room for more code. etc. etc.
def SQLnrOfPeopleNamed(dbCurs, inpName, inpAge)
dbCurs.execute(Some SQL-thingy)
#check and return result
dbCurs是传递给每个包含SQL查询的函数的值。现在dbCurs是非常特定于PostgreSQL的。每当我将这个数据库更改为e.q.MySQL时,我必须重写查询函数SQLnrOfPeople,以及与这些函数的接口。在
我想要的情况是我只需要重写SQL函数的功能。所以,我在考虑在每个SQL函数中创建一个Cursor类并关闭它。这将导致只需要连接的更通用的接口。在
^{pr2}$但我会创建并关闭更多的光标。我在手册上读到应该没问题,我认为这是一个很好的解决办法。但我还是有点怀疑。在
一般来说,按顺序打开和关闭多个游标根本没有问题。您可以将游标视为指向查询结果集的指针(它是指向缓存数据的一组指针)。打开游标分配一个指针,关闭一个指针释放内存。在
总的来说,我认为逻辑上的整洁是最好的,因此每个查询有一个游标是一种方法。在
相关问题 更多 >
编程相关推荐