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