Beispiel #1
0
 def deleteRows(self, dataTreeView, rowNums):
     # @param dataTreeView { koIDBXTableDumpTreeView }
     #  koIDBXTableDumpTreeView: koDatabaseExplorerTreeView.koDatabaseExplorerTreeView
     # @param rowNums {array of int}
     column_names = self.getColumnNames()
     query_names = []
     dataTreeView = UnwrapObject(dataTreeView)
     schemaTreeView = UnwrapObject(dataTreeView.get_schemaTreeView())
     for i in range(len(column_names)):
         is_key = (schemaTreeView.getCellText(i, dbxlib.Column('is_primary_key'))
                   == '1')
         if is_key:
             query_names.append(column_names[i])
     if not query_names:
         raise dbxlib.DBXception("No attributes are keys, can't delete")
     table_name = self._table_name
     # return True if any rows are deleted
     final_res = ""
     for rowNum in rowNums:
         query_values = []
         for column_name in query_names:
             query_values.append(dataTreeView.getCellText(rowNum,
                                                          dbxlib.Column(column_name)))
         res = self._db.deleteRowByKey(self._table_name,
                                 query_names,
                                 query_values)
         if not (res or final_res):
             final_res = ("Failed to delete keys:%s, values:%s" %
                         (", ".join(query_names),
                          ", ".join([str(x) for x in query_values])))
     return final_res
 def deleteRows(self, dataTreeView, rowNums):
     # @param dataTreeView { koIDBXTableDumpTreeView }
     #  koIDBXTableDumpTreeView: koDatabaseExplorerTreeView.koDatabaseExplorerTreeView
     # @param rowNums {array of int}
     column_names = self.getColumnNames()
     query_names = []
     dataTreeView = UnwrapObject(dataTreeView)
     schemaTreeView = UnwrapObject(dataTreeView.get_schemaTreeView())
     for i in range(len(column_names)):
         is_key = (schemaTreeView.getCellText(i, dbxlib.Column('is_primary_key')).lower()
                   in ('true', '1')) # windows: 'true', linux: '1'
         if is_key:
             query_names.append(column_names[i])
     if not query_names:
         raise dbxlib.DBXception("No attributes are keys, can't delete")
     table_name = self._table_name
     # return True if any rows are deleted
     final_res = ""
     for rowNum in rowNums:
         query_values = []
         for column_name in query_names:
             query_values.append(dataTreeView.getCellText(rowNum,
                                                          dbxlib.Column(column_name)))
         res = self._db.deleteRowByKey(self._table_name,
                                 query_names,
                                 query_values)
         if not (res or final_res):
             final_res = ("Failed to delete keys:%s, values:%s" %
                         (", ".join(query_names),
                          ", ".join([str(x) for x in query_values])))
     return final_res