pythonwin
Март 17, 2007 13:04:02
доброго времени суток!
подскажите пожалуйста как в sqlobject выполнить запрос?
>>> import model
>>> c1 = model.sqlobject.sqlhub.processConnection.getConnection().cursor()
>>> c1.execute("select * from table_name limit 20 offset 10010")
Traceback (most recent call last):
File “<stdin>”, line 1, in ?
psycopg.InterfaceError: already closed
OlDer
Март 17, 2007 16:54:01
import model
model.class_name.select()[10010:10010+20]
pythonwin
Март 19, 2007 06:14:33
OlDer, спасибо!
но этот способ я уже использую :)
просто это простой пример, а вообще мне нужно:
1) как .select() влияет на память (база довольно большая и будет расти довольно быстро)
2) как из sqlobject работать с последовательностями и другими особенностями некоторых СУБД (например - postgresql)
balu
Март 19, 2007 10:34:04
Использовать нативный API DB ;)
pythonwin
Март 19, 2007 10:46:01
balu
Использовать нативный API DB ;)
а не получиться при этом что я буду держать несколько соединений к БД ?
Mkdir
Март 19, 2007 12:09:30
Не влияет он на память. Если посмотреть исходники, то станет ясно что это не настоящее отсечение.
Когда мы делаем select(), то sqlo не отсекает из всех записей нужный нам диапазон, а добавляет в запрос строки limit и offset для PostgreSQL и limit для MySQL.
pythonwin
Март 19, 2007 12:21:34
Mkdir
Когда мы делаем select(), то sqlo не отсекает из всех записей нужный нам диапазон, а добавляет в запрос строки limit и offset для PostgreSQL и limit для MySQL.
спасибо!
PS осталось только заставить sqlobject заставить работать с последовательностями :)
OlDer
Март 19, 2007 12:30:39
pythonwin
осталось только заставить sqlobject заставить работать с последовательностями
Я так и не пойму, зачем нужно напрямую работать с последовательностями? Может опишете этот кусок вашей предметной области чтобы понятнее была задача?
balu
Март 19, 2007 17:06:02
pythonwin
а не получиться при этом что я буду держать несколько соединений к БД ?
Почему? Одно соединение на всевозможные выборки, другое на модификацию.
pythonwin
Март 21, 2007 07:29:20
OlDer
Я так и не пойму, зачем нужно напрямую работать с последовательностями?
а можно работать с последовательностями как с объектами классов?