No Description
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

ledatasourcesql.py 1.2KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. #-*- coding: utf-8 -*-
  2. from ledatasource import LeDataSource
  3. from mosql.db import Database
  4. from mosql.query import select
  5. from Lodel.utils.mosql import *
  6. ## SQL DataSource for LeObject
  7. class LeDataSourceSQL(LeDataSource):
  8. def __init__(self, module=None, *conn_args, **conn_kargs):
  9. super(LeDataSourceSQL, self).__init__()
  10. self.db = Database(self.module, self.conn_args, self.conn_kargs)
  11. ## @brief search for a collection of objects
  12. # @param emclass
  13. # @param emtype
  14. # @param filters list : list of tuples formatted as (FIELD, OPERATOR, VALUE)
  15. # @param relational_filters
  16. def get(self, emclass, emtype, field_list, filters, relational_filters):
  17. class_name = emclass.name
  18. type_name = emtype.name
  19. tablename = ""
  20. where_filters = self._prepare_filters(filters)
  21. query = select(tablename, where=where_filters, select=field_list)
  22. self.db.execute(query)
  23. pass
  24. def _prepare_filters(self, filters):
  25. prepared_filters = {}
  26. for filter in filters:
  27. prepared_filter_key = (filter[0], filter[1])
  28. prepared_filter_value = filter[2]
  29. prepared_filters[prepared_filter_key] = prepared_filter_value
  30. return prepared_filters