sqlite - Unable to use QtSqlDriver to retrieve data from a table with "." in column names -


i have sqlite database i'm trying read qtsql.qsqltablemodel. issue won't read table field name contains "." via settable method.

as example if have table called mytable column names (id, name.first, name.last) can manually select query

select * mytable 

or

select "id", "name.first", "name.last" , ok 

however, qsqltablemodel won't use query error out "no such column name.first unable execute statement."

when dug little deeper sqlite driver in qt rewrite query

select "id", "name"."first", "name"."last" mytable 

but select statement wrong , try , grab columns table "name" want column called "name.first" in table "mytable"

i tried circumvent subclassing settable method worked getting data tableview:

def tablename(self):     return self._tablename  def settable(self, tablename):     self.clear()     self._tablename = tablename     self.setquery(qtsql.qsqlquery("select * {0}".format(tablename), self.database())) 

however, reimplementing method in fashion broke method submitall().

inside file save method have following:

ok = self.tablemodel.submitall() if not ok:     logging.error('error %s' % self.tablemodel.lasterror().text())     logging.error('error %s' % self.tablemodel.query().lastquery())     return false 

this gives log:

 error:root:error near "set": syntax error unable execute statement error:root:error select * mytable 

but when don't reimplement settable method, submitall() works without errors.

so... how circumvent "." in column name problem , have submitall() work?

btw: agree having "." in field names sql tables not idea pairing tool generates sqlite file in manner have no control over.

http://www.qtcentre.org/archive/index.php/t-7565.html

http://www.qtforum.org/article/11245/sqlite-how-to-insert-text-that-contains-character-in-field.html

looks need call 1 or both of functions below before sending database, in order sanitize input.

http://qt-project.org/doc/qt-4.8/qsqlquery.html#bindvalue

http://qt-project.org/doc/qt-4.8/qsqlquery.html#prepare

http://xkcd.com/327/

:)

hope helps.


Comments

Popular posts from this blog

python - How to create a legend for 3D bar in matplotlib? -

java - Multi-Label Document Classification -

php - Dynamic url re-writing using htaccess -