Форум сайта python.su
pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах, но на одном компьютере?
Работаю с dbf-файлами.
dbf_path1 = "C:\\FIRST_FOLDER" dbf_path2 = "C:\\SECOND_FOLDER" s1 = 'Driver={Microsoft dBase Driver (*.dbf)}; DefaultDir=' + dbf_path1 con1 = pyodbc.connect(s, autocommit = True) s2 = 'Driver={Microsoft dBase Driver (*.dbf)}; DefaultDir=' + dbf_path2 con2 = pyodbc.connect(s, autocommit = True) cur = con1.cursor() cur.execute("И чего тут писать?") #А надо бы что-то типа такого: SELECT a.field1, b.field2 FROM FIRST_FOLDER.table1 a, SECOND_FOLDER.table2 b
Офлайн
Неужели никто не владеет такой сверхсекретной информацией?
Ну очень надо!
Не могу я справочную таблицу запихивать в один каталог с обрабатываемыми данными! Эти файлы потом из этого каталога пользователю нужно будет брать и уносить, так сказать. А если там помимо нужных файлов будет ещё и куча справочников, то в такой каше пользователю будет очень неудобно выбирать требуемое.
Отредактировано Pluto (Март 30, 2014 11:43:39)
Офлайн
PlutoСовсем я ведь не спец по pyodbc :( .
Ну очень надо!
Офлайн
doza_andКакие-такие символьные ссылки? Совершенно не понял о чём речь.
Символьные ссылки не помогает сделать
Офлайн
Блин! Ну почему в древнем Foxpro 2.6 я спокойно могу связать таблицу из c:\babayka\table1 с z:\chuchundra\table2 посредством простого одного-единственного SQL-запроса и получить курсор в памяти или новую таблицу на диске, а в совремОнных языках эта плёвая фигня превращается в расфигнищищу непреодолимую???
БЕЗОБРАЗИЕ! Я буду жаловаться в спортлото!!!
Офлайн
Не проблема. Я использую готовый ORM SQLAlchemy. Там все это можно. Но вот я не уверен, будет ли он работать с кайфовым продуктом от Microsoft
Офлайн
4kpt_II
Не проблема. Я использую готовый ORM SQLAlchemy. Там все это можно. Но вот я не уверен, будет ли он работать с кайфовым продуктом от Microsoft
Офлайн
PlutoПотому, что Foxpro 2.6 был вершиной развития файл-серверных баз данных, а все что позже, это только так, некрофилов вроде вас побаловать. Кстати, в 64-х разрядной винде вас ждет неприятный сюрприз.
Блин! Ну почему в древнем Foxpro 2.6 я спокойно могу связать таблицу из c:\babayka\table1 с z:\chuchundra\table2 посредством простого одного-единственного SQL-запроса и получить курсор в памяти или новую таблицу на диске, а в совремОнных языках эта плёвая фигня превращается в расфигнищищу непреодолимую???
PlutoКопируйте обрабатываемые файлы в каталог со справочниками, а после обработки обратно в каталог пользователя, заодно и undo получите.
Не могу я справочную таблицу запихивать в один каталог с обрабатываемыми данными! Эти файлы потом из этого каталога пользователю нужно будет брать и уносить, так сказать. А если там помимо нужных файлов будет ещё и куча справочников, то в такой каше пользователю будет очень неудобно выбирать требуемое.
Отредактировано PooH (Март 31, 2014 07:20:16)
Офлайн
PooHНе ждёт. Если питон используется 32-ух разрядный, то ODBC работает без проблем. Проверено на Win 7 Home Premium.
Кстати, в 64-х разрядной винде вас ждет неприятный сюрприз.
PooHНе требуется. Файлы не должны ни коим образом изменяться! Это не БД для работы, это скорей передаточные файлы из которых нужно вытянуть статистику.
заодно и undo получите.
PooHИ этот извращенец называет меня некрофилом!
Копируйте обрабатываемые файлы в каталог со справочниками, а после обработки обратно в каталог пользователя, заодно и undo получите.
Офлайн
Короче, сделал два объекта-соединения к разным каталогам.
А потом, как нынче модно говорить, тупо перебор значений по двум курсорам. “Бегу” по значениям из одного курсора и ищу их в курсоре, который хранит данные из нужного справочника. Средствами самого питона (for, if in).
Великая скорость не нужна, так что и так сойдёт!
Но в спортлото я всё равно буду жаловаться!!!
Офлайн