Column.h 1.1 KB

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