На этом шаге мы рассмотрим методы объекта соединения.
Объект соединения также поддерживает методы execute(), executemany() и executescript(), которые позволяют выполнить запрос без создания объекта-курсора. Эти методы не входят в спецификацию DB-API 2.0. Для примера изменим название рубрики с идентификатором 3:
#-*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") try: con.execute("""UPDATE rubr SET name_rubr='Поисковые порталы' WHERE id_rubr=3""") except sqlite3.DatabaseError as err: print ("Ошибка:", err) else: print("Запрос успешно выполнен") con.commit() # Завершаем транзакцию con.close() # Закрываем соединение input ()
Объект-курсор поддерживает несколько атрибутов:
#-*- coding: utf-8 -*- import sqlite3 con = sqlite3.connect("catalog.db") cur = con.cursor() # Создаем объект-курсор try: cur.execute("""INSERT INTO rubr (name_rubr) VALUES ('Кино')""") except sqlite3.DatabaseError as err: print("Ошибка:", err) else: con.commit() # Завершаем транзакцию print("Запрос успешно выполнен") print("Индекс:", cur.lastrowid) cur.close() # Закрываем объект-курсор con.close() # Закрываем соединение input ()
Помимо этого, объект соединения поддерживает атрибут total_changes, возвращающий количество записей, которые были созданы, изменены или удалены во всех таблицах базы после того, как соединение было установлено:
con = sqlite3.connect("catalog.db") . . . . print(con.total_changes)
SELECT * FROM rubr ,
(('id_rubr', None, None, None, None, None, None),
('name rubr', None, None, None, None, None, None))
На следующем шаге мы рассмотрим обработку результата запроса.