SqlBool operator- (const SqlBool& a, const SqlBool& b) { if(a.IsFalse() || b.IsTrue() || b.IsEmpty()) return SqlBool(false); if(b.IsFalse()) return a; return SqlBool(a, " and not ", SqlS(b(SqlS::COMP), SqlS::HIGH), SqlS::LAND); }
SqlBool operator||(const SqlBool& a, const SqlBool& b) { if(a.IsEmpty() || a.IsFalse()) return b; if(b.IsEmpty() || b.IsFalse()) return a; if(a.IsTrue() || b.IsTrue()) return true; return SqlBool(a, " or ", b, SqlS::LOR); }
SqlBool operator&&(const SqlBool& a, const SqlBool& b) { if(a.IsEmpty() || a.IsTrue()) return b; if(b.IsEmpty() || b.IsTrue()) return a; if(a.IsFalse() || b.IsFalse()) return false; return SqlBool(a, " and ", b, SqlS::LAND); }