Hi,

 I got strange error when tried to use SQLCustomType. I'm trying to create 
custom type which will handle unicode<->utf8 conversions. Since DB stores 
in utf8, but my app uses unicode, so I tried to create custom type which 
handles such conversions. Here is my code:

db = DAL("sqlite:////tmp/base.sqlite")

utext = SQLCustomType(
    type="text",
    native="text",
    encoder=(lambda x: x.encode("utf-8")),
    decoder=(lambda x: x.decode("utf-8"))
)

db.define_table('posts',
    Field('title', type=utext, default=""),
    Field('text', type=utext, default=""),
    Field('html', type=utext, default=""))

Now I'm doing insert into this table:

    id = db.posts.insert(title=u"Один", text=u"Два", html=u"Три")

This leads to following error:

  File "/Users/stunpix/Projects/app/logic/posts.py", line 28, in save
    id = db.posts.insert(title=u"Один", text=u"Два", html=u"Три")
  File "/Users/stunpix/Projects/app/contrib/web2py/dal.py", line 6829, in 
insert
    return self._db._adapter.insert(self,self._listify(fields))
  File "/Users/stunpix/Projects/app/contrib/web2py/dal.py", line 928, in 
insert
    raise e
OperationalError: no such column: Два

I did something wrong? Why value of "text" field was interpreted as field's 
name?

Reply via email to