示例#1
0
 def _print_import_result(status, file):
     print('table: ' + SqlHelper.get_tablename(file))
     if status[0] > 0:
         print('- created')
     if status[1] > 0:
         print('- filled')
     if status[2] > 0:
         print('- primary key detected')
     print('---')
示例#2
0
    def _create_table(self, file, indices):
        table_name = SqlHelper.get_tablename(file)

        result_create = 0
        result_data = 0
        result_key = 0

        # create table in database
        name_list, type_list = SqlImporter._extract_name_and_types(file)

        if len(name_list) > 0:
            create_query = SqlHelper.sql_create_table(table_name, name_list,
                                                      type_list)
            create_success = SqlHelper.execute_statement(
                self.connection, create_query)
            self.connection.commit()

        if create_success:
            result_create = 1

            # import data into table
            result_data = self._import_data_to_table(file, table_name,
                                                     name_list, type_list)
            self.connection.commit()

            # attempt to set primary key in first integer-type column
            primary_key = -1
            for i in range(len(type_list)):
                t = type_list[i]
                if t == DbType.INTEGER:
                    success = self._set_primarykey(table_name, i, name_list,
                                                   type_list)
                    self.connection.commit()
                    if success:
                        result_key = 1
                        primary_key = i
                    break

            # set indices on _id named columns if specified
            if indices:
                for i in range(len(type_list)):
                    t = type_list[i]
                    if i != primary_key and t == DbType.INTEGER and (
                            name_list[i] == 'id' or '_id_' in name_list[i]
                            or name_list[i].endswith('_id')):
                        self._set_index(table_name, i, name_list, type_list)

        return result_create, result_data, result_key