Форум сайта python.su
Подскажите, а как узнать кол-во результатов, полученых от базы данных? например,для узнавания кол-ва полученых строк, можно использовать query.size(). А для узнавания столбцов? Для прмиера запрос: SELECT * FROM table, то получу query.value(0) = 1, query.value(1) = test
Как узнать кол-во value?
Офлайн
а база данных какая?
а то какой-то незнакомый интрефейс методов =)
но наверное что-то типа len(query.value) или len(query.value())
Офлайн
shizaну база то MYSQL. Соединяюсь через QSqlQuery (Qt4).. Ваши оба варианты не работают :) проверял до напсиания
а база данных какая?
а то какой-то незнакомый интрефейс методов =)
но наверное что-то типа len(query.value) или len(query.value())
Офлайн
Хм. не разу не пробовал через QT.
Поэтому в голову приходит только извращенный вариант.
—————-
s = 0
while 1:
try:
query.value(s)
except:
break
s += 1
size = s+1
—————-
А вот кстати в QSqlQuery Class Reference написано:
Using SELECT * is not recommended because the order of the fields in the query is undefined.
Офлайн
Как бы сказать повежливей. Когда делается SQL-запрос, подразумевается, что тот кто его делает, знает структуру таблиц, а не наугад “select * from foo”. Это раз. Использовать Qt-шный интерфейс к БД в Python, когда есть Python DB API нужно осмысленно. Соответственно, иметь представление, что это биндинг к C++-библиотеке, и API отнюдь не pythonic. И что нужно искать в документации к Qt. Это два. Ну и желательно приводить полный код программы, это три.
#!/usr/bin/python
# encoding: utf-8
from PyQt4 import QtSql
db = QtSql.QSqlDatabase.addDatabase('QSQLITE')
db.setDatabaseName('dev.sqlite')
db.open()
query = QtSql.QSqlQuery('SELECT * FROM pyobject_models_project_version')
query.exec_()
while query.next():
print u“-”*10
rec = query.record()
for idx in xrange(rec.count()):
print u“%s: %s” % (unicode(rec.fieldName(idx)),
unicode(rec.value(idx).toString()))
db.close()
$ ./pyqtsql.py
----------
version: 0.2.1
released_at: 2007-02-27 21:08:00.0
url: http://cheeseshop.python.org/pypi/pytils/0.2.1
id: 1
project_id: 1
----------
version: 0.0.1-dev_r98
released_at: 2007-06-17 00:01:14.0
url: http://cheeseshop.python.org/pypi/YDbf/0.0.1dev-r98
id: 2
project_id: 2
Офлайн
j2a
спасибо.
Ну я доку по Qt4 и читаю…
Просто интересно стало… Думал это делать легче можно)
Офлайн