Уведомления

Группа в Telegram: @pythonsu

#1 Ноя. 18, 2010 15:42:10

Игнат
От:
Зарегистрирован: 2010-10-02
Сообщения: 224
Репутация: +  0  -
Профиль   Отправить e-mail  

про работу с sqlite базой

ранее не писал десктоп-приложения. сейчас изучаю питон 3 и sqlite
в связи с этим появился вопрос - когда именно принято создавать таблицы в test.db ?

если клиент получает программу и она открывает соединение с базой

hnd = sqlite3.connect('test.db')
должна ли она ожидать наличия нужных таблиц?

если их вдруг не окажется, то что делать в такой ситуации? писать “база данных повреждена”, после чего юзер должен восстановить оригинальный test.db с пустыми таблицами?

и если принято делать именно так, то как проверить наличие таблицы? (ну это уже мелочи, погуглю)



Офлайн

#2 Ноя. 18, 2010 16:27:53

Puppy
От:
Зарегистрирован: 2010-02-23
Сообщения: 26
Репутация: +  0  -
Профиль   Отправить e-mail  

про работу с sqlite базой

тоже интересно )

если базы нет, то она создается автоматом с пустыми таблицами естественно, если нужно то можно создать таблицы программно. например:

db=con.cursor()
# таблица
db.execute('create table content(date date,time time,otdel number,tovar string,sum number,kol number)')



Отредактировано (Ноя. 18, 2010 16:28:31)

Офлайн

#3 Ноя. 18, 2010 16:36:28

Игнат
От:
Зарегистрирован: 2010-10-02
Сообщения: 224
Репутация: +  0  -
Профиль   Отправить e-mail  

про работу с sqlite базой

да, хороший вариант
если база повреждена - можно удалить файл и тогда она будет создана заново

но хочу узнать, как всё же принято делать



Отредактировано (Ноя. 18, 2010 16:37:15)

Офлайн

#4 Ноя. 19, 2010 03:53:09

pyuser
От:
Зарегистрирован: 2007-05-13
Сообщения: 658
Репутация: +  36  -
Профиль   Отправить e-mail  

про работу с sqlite базой

проверить существование таблицы можно так:

# rs - курсор
rs.execute("SELECT name FROM sqlite_master WHERE type='table' AND name='%s'" % table_name)
если таблица не существует, то как создать уже показали



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version