0
0 комментариев

Очень простой код

import fdb
import os
import shutil
import glob
 
dbname = 'D:\Project\2014\testdb\MAINDB.FDB'
conn = fdb.connect(dbname, user='sysdba', password='masterkey')
 
cursor = conn.cursor()
 
dst = "D:\1"
 
def copyfiles(src):
    print "src = %s" % src
    print "dst = %s" % dst
    print "======================="
    if os.path.exists(dst):
        for root, dirnames, filenames in os.walk(src):
            print filenames
        return True
    else:
        print "FOLDER DO NOT EXIST"
        return False
 
def doit():
    cursor.execute("select ROUTE_ID, FILE_NAME, FL_ARCHIVE FROM ROUTE where FL_ARCHIVE  = %s;" % (10))#.fetchall()
    select_result = cursor.fetchall()
    for id, name, fl in select_result:
        name = os.path.dirname(name)
        if copyfiles(name):
            cursor.execute("UPDATE ROUTE SET FL_ARCHIVE = %s WHERE ROUTE_ID=%s;" % (11, id))
            conn.commit()
            print "value changed"
 
        else:
            cursor.execute("UPDATE ROUTE SET FL_ARCHIVE = %s WHERE ROUTE_ID=%s;" % (13, id))
            conn.commit()
            print "value DO NOT changed"
conn.close()
doit()

проблема в том, что стоит обернуть код работающий с БД в функцию def doit(), как он программа сразу начинает зависать. В чем может быть причина? Я соединение там где нужно закрываю или нет?


Добавить комментарий