Column.h 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. #ifndef ORM_COLUMN_H
  2. #define ORM_COLUMN_H
  3. #include <string>
  4. #include "Orm/Expr.h"
  5. namespace Egametang {
  6. class Column
  7. {
  8. private:
  9. std::string columnStr;
  10. public:
  11. Column();
  12. Column(const std::string& name);
  13. Column(const Column& column);
  14. ~Column();
  15. Column& operator()(std::string& name);
  16. bool Empty() const;
  17. std::string ToString() const;
  18. template <typename T>
  19. Expr operator>(const T& value)
  20. {
  21. return Oper(*this, ">", value);
  22. }
  23. template <typename T>
  24. Expr operator>=(const T& value)
  25. {
  26. return Oper(*this, ">=", value);
  27. }
  28. template <typename T>
  29. Expr operator<(const T& value)
  30. {
  31. return Oper(*this, "<", value);
  32. }
  33. template <typename T>
  34. Expr operator<=(const T& value)
  35. {
  36. return Oper(*this, "<=", value);
  37. }
  38. template <typename T>
  39. Expr operator!=(const T& value)
  40. {
  41. return Oper(*this, "!=", value);
  42. }
  43. template <typename T>
  44. Expr operator==(const T& value)
  45. {
  46. return Oper(*this, "=", value);
  47. }
  48. Expr like(const std::string value)
  49. {
  50. return Oper(*this, "like", value);
  51. }
  52. };
  53. } // namespace Egametang
  54. #endif // ORM_COLUMN_H