From: Oleg B. <ph...@ph...> - 2012-01-30 09:33:53
|
On Mon, Jan 30, 2012 at 02:23:56AM +0100, Petr Jake?? wrote: > It was necessary to define all the column names and column types manually > in the table Class definition. That's ok. "fromDatabase" schema guessing in SQLObject is a bit primitive. It works slightly better for The Big Three (MySQL, Postgres, SQLite) but still far from ideal. You have a chance to improve the machinery for Firebird - it is in FirebirdConnection class, methods columnsFromSchema and guessClass. > Before inserting/updating to the database it is necessary to check, if the > inserted value type is the same as declared in the table Class definition That strange - it's the job of validators. > (it is not possible to send string in to the integer column for example). > Strange. Well, that's that job - IntCol's validator doesn't allow strings but allows any object that can be coerced to int. > Is there some way how to check/set/convert column type according to the > Class definition? See the code in .set() that converts input values: for name, value in kw.items(): from_python = getattr(self, '_SO_from_python_%s' % name, None) if from_python: dbValue = from_python(value, self._SO_validatorState) else: dbValue = value to_python = getattr(self, '_SO_to_python_%s' % name, None) if to_python: value = to_python(dbValue, self._SO_validatorState) Oleg. -- Oleg Broytman http://phdru.name/ ph...@ph... Programmers don't die, they just GOSUB without RETURN. |