Cool!

hidden tricks and magics of DAL, that is useful, needs to be on the /book



2010/8/27 mdipierro <[email protected]>

> try this:
>
> from guon.sql import Expression
>
> db.define_table(.....,Field(...,default=Expression('CURRENT_DATE')),....)
>
> On Aug 27, 9:19 pm, Adrian Klaver <[email protected]> wrote:
> > On Friday 27 August 2010 5:42:04 pm Bruno Rocha wrote:
> >
> >
> >
> > > Looking sql.py I found:
> >
> > > 'notnull': 'NOT NULL DEFAULT %(default)s'
> >
> > > If I understand it well, that could be yor solution.
> >
> > > SQL_DIALECTS = {    'sqlite': {        'boolean': 'CHAR(1)',
> > > 'string': 'CHAR(%(length)s)',        'text': 'TEXT',
> > > 'password': 'CHAR(%(length)s)',        'blob': 'BLOB',
> > > 'upload': 'CHAR(%(length)s)',        'integer': 'INTEGER',
> > > 'double': 'DOUBLE',        'decimal': 'DOUBLE',        'date': 'DATE',
> > >        'time': 'TIME',        'datetime': 'TIMESTAMP',        'id':
> > > 'INTEGER PRIMARY KEY AUTOINCREMENT',        'reference': 'INTEGER
> > > REFERENCES %(foreign_key)s ON DELETE %(on_delete_action)s',
> > > 'lower': 'LOWER(%(field)s)',        'upper': 'UPPER(%(field)s)',
> > >  'is null': 'IS NULL',        'is not null': 'IS NOT NULL',
> > > 'extract': "web2py_extract('%(name)s',%(field)s)",        'left join':
> > > 'LEFT JOIN',        'random': 'Random()',        'notnull': 'NOT NULL
> > > DEFAULT %(default)s',        'substring':
> > > 'SUBSTR(%(field)s,%(pos)s,%(length)s)',        'primarykey': 'PRIMARY
> > > KEY (%s)'        },
> >
> > Yes and no. That is how the DEFAULT clause is constructed using the
> string
> > passed to the default argument in Field()
> > ex:
> Field('grade_date','date',default='2010/8/27',required=True,notnull=True)
> > becomes;
> > grade_date DATE NOT NULL DEFAULT '2010-08-27'
> >
> > The problem is CURRENT_DATE is not a string but an SQL function. If I
> include it
> > as a string then the default becomes the string literal 'CURRENT_DATE'.
> If I do
> > not quote it as string then Python complains because it is not a declared
> > variable.
> >
> > Thanks,
> > --
> > Adrian Klaver
> > [email protected]




-- 

http://rochacbruno.com.br

Reply via email to