Я начинающий в скрипте Python. Я хочу прочитать записи базы данных msaccess и записать в файл XML.
Таблица доступа к базе данных содержит более 20000 записей.
Теперь я могу это сделать, но это занимает от 4 до 5 минут. Поэтому я реализую концепцию потоков. Но нарезка резьбы также занимает более 5-6 минут. Потому что каждый поток открывает записи источника данных из таблиц и закрывает источник данных.
Я не знаю, как решить проблемы.
КОД:
class ConfigDataHandler(Thread):
def __init__(self, dev):
Thread.__init__(self)
self.dev = dev
def run(self):
db_source_path = r'D:\sampleDB.mdb'
db_source = win32com.client.Dispatch(r'ADODB.Connection')
db_source.ConnectionString = 'PROVIDER=Microsoft.Jet.OLEDB.4.0;
DATA SOURCE=' + db_source_path + ';'
db_source.Open()
query = """ SELECT * from table"""
source_rs = win32com.client.Dispatch(r'ADODB.Recordset')
source_rs.Open(query, db_source, 3, 1)
while not source_rs.EOF :
f_units.append(source_rs.fields("Name").Value))
source_rs.MoveNext()
source_rs.Close()
db_source.Close()
out = render(f_units)
open("D:/test.xml", "w").write(out)
d_list = get_dev_list()
for d in d_list:
current = ConfigDataHandler(d)
current.start()