--- ZSQLExtend/importFMPXML.py 2006/12/20 18:45:58 1.1 +++ ZSQLExtend/importFMPXML.py 2006/12/20 20:29:27 1.2 @@ -3,10 +3,16 @@ import string from xml.dom.pulldom import parse -import psycopg2 as psycopg import logging import sys +try: + import psycopg2 as psycopg + psyco = 2 +except: + import psycopg + psyco = 1 + def getTextFromNode(nodename): """get the cdata content of a node""" @@ -30,6 +36,8 @@ def sql_quote(v): def SimpleSearch(curs,query, args=None): """execute sql query and return data""" logging.debug("executing: "+query) + if psyco == 1: + query = query.encode("UTF-8") curs.execute(query, args) logging.debug("sql done") return curs.fetchall() @@ -146,6 +154,8 @@ def importXMLFileFMP(dsn,table,filename, setStr=string.join(setvals, ',') id_val=dataSet[id_field] qstr="UPDATE %s SET %s WHERE %s = '%s' "%(table,setStr,id_field,id_val) + if psyco == 1: + query = query.encode("UTF-8") db.execute(qstr) ret += "up: %s"%id_val else: @@ -153,6 +163,8 @@ def importXMLFileFMP(dsn,table,filename, fields=string.join(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) + if psyco == 1: + query = query.encode("UTF-8") db.execute(qstr) ret += "ad: %s"%dataSet.get(id_field, rowcnt) @@ -169,6 +181,8 @@ def importXMLFileFMP(dsn,table,filename, if dbIDs[id] == 0: logging.info(" delete:"+id) qstr = "DELETE FROM %s WHERE %%s = '%%s'"%table + if psyco == 1: + query = query.encode("UTF-8") db.execute(qstr, (id_field,id)) elif dbIDs[id] > 1: