Форум сайта python.su
Здравствуйте.
Можно ли SQLite таблицу вида:
Фамилия | Имя | КолБал
Петров | Сергей | 2
Иванов | Максим | 1
Анютина | Марина | 3
Петров | Андрей | 3
обновить данными из списка
[[Анютина, Марина , 2], [Иванов, Максим, 1], [Петров, Андрей, 1]]
Офлайн
MaratD
нифига не понятно
Офлайн
Имеется таблица, в которой необходимо изменить значения колонки КолБал (число). Имеется список с фамилиями, именами и числами. Обновить таблицу надо по соответствующим фамилиям и именам. Число в колонке КолБал должно получиться как разность. То есть, например, из списка берем Иванова Максима. Смотрим, если есть в таблице Иванов Максим, то в колонке КолБал меняем число 1 на 1-1=0. Если нет, то просто добавляем запись в таблицу.
Это возможно или нет?
Офлайн
SELECT c1, sum(c2) FROM 'Users' GROUP BY c1 ORDER BY c1;
Офлайн
пробую обновить запись таблицы, вылетает ошибка:
con.execute('UPDATE OR ROLLBACK pers SET kol=? WHERE fam=? AND nam=?', (k, ff, nn))
sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.
ПОМОГИТЕ!!! что не так?
k = (9.0,) ff= ('Петров',) nn = ('Андрей',) con.execute('UPDATE OR ROLLBACK ostatok SET kol=? WHERE fam=? AND nam=?', (k, ff, nn))
Офлайн
MaratD
пробую обновить запись таблицы, вылетает ошибка:con.execute('UPDATE OR ROLLBACK pers SET kol=? WHERE fam=? AND nam=?', (k, ff, nn))sqlite3.InterfaceError: Error binding parameter 0 - probably unsupported type.ПОМОГИТЕ!!! что не так?
k = 9.0 ff= 'Петров' nn = 'Андрей' con.execute('UPDATE OR ROLLBACK ostatok SET kol={} WHERE fam={} AND nam={}'.format(k, ff, nn))
Офлайн
к - это число (float).
с одним параметром все работает (с числовым или строковым), а если добавляю больше уже вылетает ошибка.
Офлайн
MaratD
к - это число (float).с одним параметром все работает (с числовым или строковым), а если добавляю больше уже вылетает ошибка.
Офлайн
да, спасибо.
только дошло, взял у вас строки вместо кортежей.
Офлайн
Здравствуйте.
Возможно ли подключиться к базе SQLite не при запуске скрипта, а в определенный момент (например, при нажатии кнопки). При этом, чтобы это соединение было видно в любом месте модуля.
Сделал так, работает. Но кажется не так это делается. Подскажите как правильно делают.
class Example(QWidget): conn = None def __init__(self): super().__init__()
def TestView(self): Example.conn = sqlite3.connect('TEST.db') c = Example.bb.cursor() c.execute('SELECT * FROM test1') print(c.fetchall())
Офлайн