Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Создание базы sqlite3 в Python 2.5 Windows, Не сохраняются строки созданной таблицы 
V
    Опции темы
__vb__
Дата 25.5.2007, 12:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.5.2007

Репутация: 1
Всего: 1



Вопрос новичка в python+sqlite3.

Программка проверяет наличие в БД sqlite3 нужной таблицы, и если таблица отсутствует, создает ее и вносит в таблицу одну запись.
Затем программа выбирает эту строку из таблицы и печатает ее. Вот код.

Код

#!/usr/bin/env python
# -*- coding: windows-1251 -*-

import sqlite3 as sqlite

def main():

  conn = sqlite.connect("test.db")
  db = conn.cursor()

  db.execute("select name from sqlite_master where name='test'")
  if db.fetchone():
    print "Table exist"
  else:
    print "Create Table"
    db.execute("create table test (one text, two text)")
    db.execute("insert into test values ('key1', 'val1')")

  db.execute("select * from test")
  print db.fetchone()

  db.close()
  conn.close()

if __name__ == '__main__' :
  main()


При первом запуске (когда таблица создается и заполняется), данные из таблицы выодятся правильно.

D:\test>python db.py
Create Table
(u'key1', u'val1')

Но после завершения программы при проверке содержимого созданной таблицы при помощи консольного клиента sqlite3 таблица оказывается пустой.
Соответственно, повторные запуски программы работают не так, как задумано.

D:\test>python db.py
Table exist
None

Что я делаю не так? ©


PM   Вверх
setq
Дата 25.5.2007, 12:43 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Возможно имеет смысл вызвать conn.commit() перед закрытием курсора.
  Вверх
__vb__
Дата 25.5.2007, 12:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 20.5.2007

Репутация: 1
Всего: 1



Цитата

Возможно имеет смысл вызвать conn.commit() перед закрытием курсора.

Спасибо, починилось. Странно, что в тех туториалах, которые смотрел нигде на этом не акцентировалось внимание в примерах.

А вообще по связке python+sqlite3 какие-то доки/книжки достойные есть? А то во встроенном питоньем хелпе куцее какое-то описание.


Это сообщение отредактировал(а) __vb__ - 25.5.2007, 13:01
PM   Вверх
setq
Дата 25.5.2007, 14:08 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Не знаю. Гугли)
  Вверх
Artemios
Дата 25.5.2007, 14:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 405
Регистрация: 14.8.2006
Где: Саратов, Россия

Репутация: нет
Всего: 50



Здесь немного есть:
http://www.intuit.ru/department/pl/python/10/



--------------------
fib = 1: 1: [ x+y | (x,y) <- zip fib (tail fib) ]
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Python: Базы данных | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.