On Tuesday, December 2, 2014 6:19:23 PM UTC+1, Nico de Groot wrote:
>
> The function _update_or_insert(... returns the sql that is generated.
@nico: unfortunately there isn't (it's a two-step phase that isn't resolved
to a single SQL statement)
however, it made me spot the actual error in the posted code
@TR:
the update_or_insert "pseudo-code" is
db.table.update_or_insert(condition, field1=value1,field2=value2, etc)
where condition is a Query, you're instead passing a Set
to sum up...
db.table.update_or_insert(db.table.field1 == value1,
field1=value1,field2=value2, etc)
or, with "multiple conditions"
db.table.update_or_insert((db.table.field1 == value1) & (db.table.field2 ==
value2), field1=value1,field2=value2, etc)
you're using instead
db.table.update_or_insert(db((db.table.field1 == value1) & (db.table.field2
== value2)), field1=value1,field2=value2, etc)
the red part is not allowed
BTW: read that kind of code sucks. Python (and DAL) is coded to be easy to
read..... just refactoring as
tb = db.cms_meas_details
cond = (tb.agt_no==session.agt_no) &
(tb.jcod==session.jcod) &
(tb.meas_date==session.meas_date) &
(tb.shift==session.shift) &
(tb.line_no==j)
tb.update_or_insert(cond,
meas_id=m_id,
agt_no=session.agt_no,
jcod=session.jcod,
meas_date=session.meas_date,
shift=session.shift,
loc_of_work=form.vars['txt%s%s' % (i,1)],
m_no=form.vars['txt%s%s' %(i,2)],
m_times=form.vars['txt%s%s' %(i,3)],
m_length=form.vars['txt%s%s' %(i,4)],
m_breadth=form.vars['txt%s%s' %(i,5)],
m_depth=form.vars['txt%s%s' %(i,6)],
mat_code=form.vars['cmbMat%s%s' %(1,7)],
unit_weight=form.vars['txt%s%s' %(i,8)],
m_content=form.vars['txt%s%s' %(i,9)],
remarks=form.vars['txt%s%s' %(i,10)],
update_uid="e34789",
update_dt=request.now,
line_no=j
)
takes just a little bit of time but it'll be much easier to read and to
spot errors in the future
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.