Найти - Пользователи
Полная версия: sqlite
Начало » Python для новичков » sqlite
1 2 3
MaratD
Здравствуйте.
Можно ли SQLite таблицу вида:

Фамилия | Имя | КолБал
Петров | Сергей | 2
Иванов | Максим | 1
Анютина | Марина | 3
Петров | Андрей | 3

обновить данными из списка
 [[Анютина, Марина , 2], [Иванов, Максим, 1], [Петров, Андрей, 1]]
,
чтобы получить значения КолБал как разность существующих в таблице и в списке чисел?
Фамилия | Имя | КолБал
Петров | Сергей | 2
Иванов | Максим | 0
Анютина | Марина | 1
Петров | Андрей | 2.


FishHook
MaratD
нифига не понятно
MaratD
Имеется таблица, в которой необходимо изменить значения колонки КолБал (число). Имеется список с фамилиями, именами и числами. Обновить таблицу надо по соответствующим фамилиям и именам. Число в колонке КолБал должно получиться как разность. То есть, например, из списка берем Иванова Максима. Смотрим, если есть в таблице Иванов Максим, то в колонке КолБал меняем число 1 на 1-1=0. Если нет, то просто добавляем запись в таблицу.
Это возможно или нет?
gorodetskiykp
 SELECT c1, sum(c2) FROM 'Users' GROUP BY c1 ORDER BY c1;

Результат можно заинсертить в новую таблицу.
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=?', (k, ff, nn))

gorodetskiykp
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.ПОМОГИТЕ!!! что не так?

Это же python-строка? Попробуй с помощью format.
 k = 9.0
ff= 'Петров'
nn = 'Андрей'
con.execute('UPDATE OR ROLLBACK ostatok SET kol={} WHERE fam={} AND nam={}'.format(k, ff, nn))
MaratD
к - это число (float).
с одним параметром все работает (с числовым или строковым), а если добавляю больше уже вылетает ошибка.
gorodetskiykp
MaratD
к - это число (float).с одним параметром все работает (с числовым или строковым), а если добавляю больше уже вылетает ошибка.

так мое решение сработало или нет?
MaratD
да, спасибо.
только дошло, взял у вас строки вместо кортежей.
MaratD
Здравствуйте.
Возможно ли подключиться к базе 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())
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB