--- ZSQLExtend/importFMPXML.py 2010/05/10 15:50:32 1.31 +++ ZSQLExtend/importFMPXML.py 2011/05/20 16:03:18 1.32 @@ -22,7 +22,7 @@ except: fm_ns = 'http://www.filemaker.com/fmpxmlresult' -version_string = "V0.6.5 ROC 10.5.2010" +version_string = "V0.6.6 ROC 20.5.2011" def unicodify(text, withNone=False): """decode str (utf-8 or latin-1 representation) into unicode object""" @@ -389,18 +389,23 @@ class xml_handler: if self.sync_mode: # delete unmatched entries in db - self.logger.info("deleting unmatched rows from db") - delQuery = "DELETE FROM %s WHERE \"%s\" = %%s"%(self.table,self.id_field) - for id in self.dbIDs.keys(): - # find all not-updated fields - if self.dbIDs[id] == 0: - self.logger.info(" delete: %s"%id) - SimpleSearch(self.db, delQuery, [id], ascii=self.ascii_db) - - elif self.dbIDs[id] > 1: - self.logger.info(" sync: ID %s used more than once?"%id) - - self.dbCon.commit() + if self.rowcnt > 0: + self.logger.info("deleting unmatched rows from db") + delQuery = "DELETE FROM %s WHERE \"%s\" = %%s"%(self.table,self.id_field) + for id in self.dbIDs.keys(): + # find all not-updated fields + if self.dbIDs[id] == 0: + self.logger.info(" delete: %s"%id) + SimpleSearch(self.db, delQuery, [id], ascii=self.ascii_db) + + elif self.dbIDs[id] > 1: + self.logger.info(" sync: ID %s used more than once?"%id) + + self.dbCon.commit() + + else: + # safety in case we had an empty file + self.logger.warning("no rows read! not deleting unmatched rows!") # reinstate backup tables if self.backup_table and not self.id_field: