version 1.3, 2006/12/20 20:36:05
|
version 1.4, 2006/12/21 12:17:32
|
Line 40 def SimpleSearch(curs,query, args=None):
|
Line 40 def SimpleSearch(curs,query, args=None):
|
query = query.encode("UTF-8") |
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 154 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) |
if psyco == 1: |
SimpleSearch(db, qstr) |
qstr = qstr.encode("UTF-8") |
|
db.execute(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) |
if psyco == 1: |
SimpleSearch(db, qstr) |
qstr = qstr.encode("UTF-8") |
|
db.execute(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 181 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 |
if psyco == 1: |
SimpleSearch(db, qstr, (id_field,id)) |
qstr = qstr.encode("UTF-8") |
|
db.execute(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) |