Beispiel #1
0
 def execute_query(self):
     self.query_result, self.meta = self.query_builder.build_query().execute_with_meta()
     dct = utils.tuple_to_dict_with_meta(self.query_result, self.meta)
     self.main_win.set_data_to_table(dct)
     self.key_sequence.append('a')
Beispiel #2
0
    def set_tmp_data(self, data):
        if self.view_type == ViewTypeLabels.DEFAULT_SELECT:
            # TODO rewrite without index
            result, self.meta = self.query_builder.select_all(
                data.get(data.curselection()[0])[0]).execute_with_meta()
            dct = utils.tuple_to_dict_with_meta(result, self.meta)
            self.main_win.set_data_to_table(dct)

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.FROM_SELECT:
            tmp = []
            for i in data.curselection():
                tmp.append(data.get(i)[0])
            self.query_builder.set_from(tmp)

            self.main_win.label_value = self.query_builder.get_query_for_label()
            self.main_win.window.update_idletasks()
            return

        if self.view_type == ViewTypeLabels.DESC_TABLE:
            result, self.meta = self.query_builder.desc_table(
                data.get(data.curselection()[0])[0]).execute_with_meta()
            dct = utils.tuple_to_dict_with_meta(result, self.meta)
            self.main_win.set_data_to_table(dct)

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.ORDER_BY:
            self.sort_column = data.get(data.curselection()[0])
            self.main_win.sort_table(self.sort_column)
            return

        if self.view_type == ViewTypeLabels.PURE_QUERY:
            result, self.meta = self.query_builder.set_query(data).execute_with_meta()
            dct = utils.tuple_to_dict_with_meta(result, self.meta)
            self.main_win.set_data_to_table(dct)

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.SELECT_SELECT:
            tmp = []
            for i in data.curselection():
                tmp.append(data.get(i))
            self.query_builder.set_select(tmp)

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.LIMIT_SELECT:
            self.query_builder.set_limit(data)
            return

        if self.view_type == ViewTypeLabels.GROUP_BY:
            tmp = []
            for i in data.curselection():
                tmp.append(data.get(i))
            self.query_builder.set_group_by(tmp)

            # TODO without slices
            select_tpl = self.query_builder.select_part[7:].split(', ')
            diff = utils.group_select_diff(tmp, select_tpl)

            for i in diff:
                if i in select_tpl:
                    select_tpl.remove(i)
            self.query_builder.set_select(select_tpl)

            if len(diff) > 0:
                view = input_window.InputWindow(self, manual_input=False)
                view.add(', '.join(diff))
                view.calculate_string_gaps()
                self.view_type = ViewTypeLabels.AGGREGATE

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.WHERE_SELECT:
            tmp = []
            for i in data.curselection():
                tmp.append(data.get(i))

            where_str = ''
            for i in tmp:
                where_str += i + ' = and '
            where_str = where_str[:-5]

            if len(where_str) > 0:
                view = input_window.InputWindow(self, manual_input=True)
                view.add(where_str)
                view.calculate_string_gaps()
                self.view_type = ViewTypeLabels.WHERE_SELECT_SUBMIT

            self.main_win.label_value = self.query_builder.get_query_for_label()
            return

        if self.view_type == ViewTypeLabels.WHERE_SELECT_SUBMIT:
            self.query_builder.set_where(data)
            return

        if self.view_type == ViewTypeLabels.AGGREGATE:
            self.query_builder.select_part = self.query_builder.select_part + ', ' + data
            return
Beispiel #3
0
 def show_tables(self):
     result, meta = self.query_builder.show_tables().execute_with_meta()
     self.main_win.set_data_to_table(utils.tuple_to_dict_with_meta(result, meta))
     self.key_sequence.append('s')