Уведомления

Группа в Telegram: @pythonsu

#1 Июль 10, 2010 22:38:55

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

Помогите с модулеm e32db, не хочет записывать данные в таблицу.

>>> import e32db
>>> path = u'e:\\sql.db'
>>> db = e32db.Dbms()
>>> db.create(path)
>>> db.open(path)
>>> db.execute(u'CREATE TABLE users (login LONG VARCHAR, password LONG VARCHAR)')
0
>>> db.execute(u"""INSERT INTO users VALUES('Dark','password')""")
Traceback (most recent call last):
File "<console>", line 1, in ?
SymbianError: [Errno -6] KErrArgument
>>>
в чем ошибка?



Офлайн

#2 Июль 11, 2010 15:26:41

kzoi_py
От:
Зарегистрирован: 2009-02-01
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

пишете как вижу для мобилы или модуль специфический. вам обязательно с dbase работать? попробуйте sqlite. Или попробуйте делать записи не в формате unicode (тоже относится к указанию имени базы и выволнением каких-либо команд).



Офлайн

#3 Июль 11, 2010 20:38:01

KaBaSya
От:
Зарегистрирован: 2009-12-17
Сообщения: 56
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

В ошибке сказано, что неверно указан аргумент. Тч kzoi_py скорее всего прав и именно использование юникода приводит к такому результату.



Офлайн

#4 Июль 11, 2010 22:34:50

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

Да, вы правы я маленько разобрался. Но с базой все равно проблемы, она как-то не совсем правильно хранит записи, при удалении таблиц или записей они не удаляются, а все равно храняться в файле, и при записи каждый раз перезаписываются в конец базы, получается очень большой размер…не знаю как от этого избавиться…записей, а точнее обновлений я делаю много…



Отредактировано (Июль 12, 2010 01:56:59)

Офлайн

#5 Июль 12, 2010 08:48:31

kzoi_py
От:
Зарегистрирован: 2009-02-01
Сообщения: 74
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

а вы результат (удаление, добавление) синхронизируете?



Офлайн

#6 Июль 12, 2010 11:12:16

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите с e32db

DarkVortex
в чем ошибка?
Попробуй после VALUES поставить пробел. e32db очень придирчив к синтаксису…
kzoi_py
попробуйте sqlite.
На симбиане не доступен sqlite.
kzoi_py
Или попробуйте делать записи не в формате unicode (тоже относится к указанию имени базы и выволнением каких-либо команд).
KaBaSya
Тч kzoi_py скорее всего прав и именно использование юникода приводит к такому результату.
Нет, нет и еще раз нет! unicode only!!!
DarkVortex
Но с базой все равно проблемы, она как-то не совсем правильно хранит записи, при удалении таблиц или записей они не удаляются, а все равно храняться в файле, и при записи каждый раз перезаписываются в конец базы, получается очень большой размер
Смотри метод compact().
Вообще, не стесняйся заглядывать в документацию
http://pys60.garage.maemo.org/doc/s60/module-e32db.html

Здесь я еще кое что писал о базах данных на symbian http://habrahabr.ru/blogs/PyS60/77761/ (хотя похоже ты использовал как раз таки мой пример)
Тебе кстати для твоего случая больше подходит e32dbm



Офлайн

#7 Июль 12, 2010 12:54:08

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

ну вот вроде и все. Кое как разобрался с документацией, метод db.compact() очищает все неиспользуемое пространство в файле бд.
#6. Да пример использовал ваш)
еще бы не помешало питоновский sql синтаксис посмотреть)



Офлайн

#8 Июль 12, 2010 13:49:46

igor.kaist
От:
Зарегистрирован: 2007-11-12
Сообщения: 1879
Репутация: +  3  -
Профиль   Отправить e-mail  

Помогите с e32db

DarkVortex
еще бы не помешало питоновский sql синтаксис посмотреть)
Синтаксис sql совсем с питоном не связан, посмотри на эту pdf S60 Platform: Using DBMS APIs v2.0 (начиная с 23 страницы)



Офлайн

#9 Июль 12, 2010 21:42:12

DarkVortex
От:
Зарегистрирован: 2010-04-18
Сообщения: 34
Репутация: +  0  -
Профиль   Отправить e-mail  

Помогите с e32db

igor.kaist
DarkVortex
еще бы не помешало питоновский sql синтаксис посмотреть)
Синтаксис sql совсем с питоном не связан, посмотри на эту pdf S60 Platform: Using DBMS APIs v2.0 (начиная с 23 страницы)
еще раз спасибо) вопросов по работе с субд больше нет)



Офлайн

Board footer

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

Powered by DjangoBB

Lo-Fi Version