Найти - Пользователи
Полная версия: Помогите с e32db
Начало » Mobile Python » Помогите с e32db
1
DarkVortex
Помогите с модуле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
>>>
в чем ошибка?
kzoi_py
пишете как вижу для мобилы или модуль специфический. вам обязательно с dbase работать? попробуйте sqlite. Или попробуйте делать записи не в формате unicode (тоже относится к указанию имени базы и выволнением каких-либо команд).
KaBaSya
В ошибке сказано, что неверно указан аргумент. Тч kzoi_py скорее всего прав и именно использование юникода приводит к такому результату.
DarkVortex
Да, вы правы я маленько разобрался. Но с базой все равно проблемы, она как-то не совсем правильно хранит записи, при удалении таблиц или записей они не удаляются, а все равно храняться в файле, и при записи каждый раз перезаписываются в конец базы, получается очень большой размер…не знаю как от этого избавиться…записей, а точнее обновлений я делаю много…
kzoi_py
а вы результат (удаление, добавление) синхронизируете?
igor.kaist
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
DarkVortex
ну вот вроде и все. Кое как разобрался с документацией, метод db.compact() очищает все неиспользуемое пространство в файле бд.
#6. Да пример использовал ваш)
еще бы не помешало питоновский sql синтаксис посмотреть)
igor.kaist
DarkVortex
еще бы не помешало питоновский sql синтаксис посмотреть)
Синтаксис sql совсем с питоном не связан, посмотри на эту pdf S60 Platform: Using DBMS APIs v2.0 (начиная с 23 страницы)
DarkVortex
igor.kaist
DarkVortex
еще бы не помешало питоновский sql синтаксис посмотреть)
Синтаксис sql совсем с питоном не связан, посмотри на эту pdf S60 Platform: Using DBMS APIs v2.0 (начиная с 23 страницы)
еще раз спасибо) вопросов по работе с субд больше нет)
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