Hello, 

> I would like to write a simple "invert" function for numeric columns via 
> EmpireDB.
> I am aware of the native SQL mechanism, but I was wondering if there is also 
> a way of making this "properly":
> 
> UPDATE data SET value = 1 / value WHERE key = "someKey";
> 
> Any ideas how to achieve this in EmpireDB?

You can extends DBColumnExpr and implement the addSQL method with
something like 

buf.append(getObjectValue(DataType.INTEGER, this.expr1, CTX_DEFAULT,
null));
 buf.append(" \ ");
 buf.append(getObjectValue(DataType.INTEGER, this.expr2, CTX_DEFAULT,
null)); 
and use it like 

DBInvertExpr inv = new DBInvertExpr(db, 1, T.DATA.VALUE);
DBCommand cmd = db.createCommand();
cmd.set(T.DATA.VALUE.to(inv));
cmd.where(T.DATA.KEY.is(23)); 

- jan 
 

Reply via email to