Hi all,

I have a problem with DefautClause. I need to assign a default to a numeric column.
   tbl['rischio_attivita'] = Table('rischio_attivita', database.metadata,
Column('id', Integer, Sequence('rischio_attivita_seq'), primary_key=True),
       Column('cod_attivita', Unicode(10),nullable=False),
       Column('cod_caratteristica_rischio', Unicode(10), nullable=False),
       Column('tipo_calcolo', Integer),
       Column('algoritmo', Unicode(200)),
       Column('fattore_x', Numeric(4,2), DefaultClause(1.0)),
       ForeignKeyConstraint(['cod_attivita'], ['attivita.codice']),
ForeignKeyConstraint(['cod_caratteristica_rischio'], ['caratteristica_rischio.codice'])
       )


I tried to assign a float to it and I got this error:

File "/home/sfera/sicer2/buildout/eggs/SQLAlchemy-0.9.3-py2.6-linux-x86_64.egg/sqlalchemy/util/langhelpers.py", line 999, in assert_arg_type
   (name, ' or '.join("'%s'" % a for a in argtype), type(arg)))
sqlalchemy.exc.ArgumentError: Argument 'arg' is expected to be one of type '<type 'basestring'>' or '<class 'sqlalchemy.sql.elements.ClauseElement'>' or '<class 'sqlalchemy.sql.elements.TextClause'>', got '<type 'float'>'
[sfera@tstsferagamma01 release]$ vi sicer/BASE/model/sql.py

then I changed it to a string as in:
       Column('fattore_x', Numeric(4,2), DefaultClause('1.0')),

and now I have this:

sqlalchemy.exc.DatabaseError: (DatabaseError) ORA-01722: invalid number
"\nCREATE TABLE attivita (\n\tid INTEGER NOT NULL, \n\tcod_attivita NVARCHAR2(10) NOT NULL, \n\tcod_caratteristica_rischio NVARCHAR2(10) NOT NULL, \n\ttipo_calcolo INTEGER, \n\talgoritmo NVARCHAR2(200), \n\tfattore_x NUMERIC(4, 2) DEFAULT '1.0', \n\tPRIMARY KEY (id), \n\tFOREIGN KEY(cod_attivita) REFERENCES attivita (codice), \n\tFOREIGN KEY(cod_caratteristica_rischio) REFERENCES caratteristica_rischio (codice)\n)\n\n" {}



Is there another way to define a default clause?
thanks.

j

--
You received this message because you are subscribed to the Google Groups 
"sqlalchemy" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to sqlalchemy+unsubscr...@googlegroups.com.
To post to this group, send email to sqlalchemy@googlegroups.com.
Visit this group at http://groups.google.com/group/sqlalchemy.
For more options, visit https://groups.google.com/d/optout.

Reply via email to