Diff for /ZSQLExtend/importFMPXML.py between versions 1.1 and 1.4

version 1.1, 2006/12/20 18:45:58 version 1.4, 2006/12/21 12:17:32
Line 3 Line 3
   
 import string  import string
 from xml.dom.pulldom import parse  from xml.dom.pulldom import parse
 import psycopg2 as psycopg  
 import logging  import logging
 import sys  import sys
   
   try:
       import psycopg2 as psycopg
       psyco = 2
   except:
       import psycopg
       psyco = 1
   
   
 def getTextFromNode(nodename):  def getTextFromNode(nodename):
     """get the cdata content of a node"""      """get the cdata content of a node"""
Line 30  def sql_quote(v): Line 36  def sql_quote(v):
 def SimpleSearch(curs,query, args=None):  def SimpleSearch(curs,query, args=None):
     """execute sql query and return data"""      """execute sql query and return data"""
     logging.debug("executing: "+query)      logging.debug("executing: "+query)
       if psyco == 1:
           query = query.encode("UTF-8")
     curs.execute(query, args)      curs.execute(query, args)
     logging.debug("sql done")      logging.debug("sql done")
       try:
     return curs.fetchall()      return curs.fetchall()
       except:
           return None
   
   
 def importXMLFileFMP(dsn,table,filename,update_fields=None,id_field=None,sync_mode=False):  def importXMLFileFMP(dsn,table,filename,update_fields=None,id_field=None,sync_mode=False):
Line 146  def importXMLFileFMP(dsn,table,filename, Line 157  def importXMLFileFMP(dsn,table,filename,
                 setStr=string.join(setvals, ',')                  setStr=string.join(setvals, ',')
                 id_val=dataSet[id_field]                  id_val=dataSet[id_field]
                 qstr="UPDATE %s SET %s WHERE %s = '%s' "%(table,setStr,id_field,id_val)                  qstr="UPDATE %s SET %s WHERE %s = '%s' "%(table,setStr,id_field,id_val)
                 db.execute(qstr)                  SimpleSearch(db, qstr)
                 ret += "up: %s"%id_val                  ret += "up: %s"%id_val
             else:              else:
                 # create new row                  # create new row
                 fields=string.join(update_fields, ',')                  fields=string.join(update_fields, ',')
                 values=string.join([" %s "%sql_quote(dataSet[x]) for x in update_fields], ',')                  values=string.join([" %s "%sql_quote(dataSet[x]) for x in update_fields], ',')
                 qstr="INSERT INTO %s (%s) VALUES (%s)"%(table,fields,values)                  qstr="INSERT INTO %s (%s) VALUES (%s)"%(table,fields,values)
                 db.execute(qstr)                  SimpleSearch(db, qstr)
                 ret += "ad: %s"%dataSet.get(id_field, rowcnt)                  ret += "ad: %s"%dataSet.get(id_field, rowcnt)
   
             #logging.info(" row:"+"%d (%s)"%(rowcnt,id_val))              #logging.info(" row:"+"%d (%s)"%(rowcnt,id_val))
Line 169  def importXMLFileFMP(dsn,table,filename, Line 180  def importXMLFileFMP(dsn,table,filename,
             if dbIDs[id] == 0:              if dbIDs[id] == 0:
                 logging.info(" delete:"+id)                  logging.info(" delete:"+id)
                 qstr = "DELETE FROM %s WHERE %%s = '%%s'"%table                  qstr = "DELETE FROM %s WHERE %%s = '%%s'"%table
                 db.execute(qstr, (id_field,id))                  SimpleSearch(db, qstr, (id_field,id))
                                   
             elif dbIDs[id] > 1:              elif dbIDs[id] > 1:
                 logging.info(" sync:"+"id used more than once?"+id)                  logging.info(" sync:"+"id used more than once?"+id)

Removed from v.1.1  
changed lines
  Added in v.1.4


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>