Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Базы данных
  • » pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах? [RSS Feed]

#1 Март 28, 2014 10:25:09

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

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

Офлайн

#2 Март 30, 2014 11:41:08

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Неужели никто не владеет такой сверхсекретной информацией?
Ну очень надо!
Не могу я справочную таблицу запихивать в один каталог с обрабатываемыми данными! Эти файлы потом из этого каталога пользователю нужно будет брать и уносить, так сказать. А если там помимо нужных файлов будет ещё и куча справочников, то в такой каше пользователю будет очень неудобно выбирать требуемое.

Отредактировано Pluto (Март 30, 2014 11:43:39)

Офлайн

#3 Март 30, 2014 15:14:11

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 4138
Репутация: +  252  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Pluto
Ну очень надо!
Совсем я ведь не спец по pyodbc :( .
Так что буду не советовать а спрашивать.

Символьные ссылки не помогает сделать во второй директории? (в той где справочники живут).
Если надо просто получить новую таблицу в памяти из пары курсоров, то почему не использовать что-то из itertools? http://docs.python.org/3/library/itertools.html



Офлайн

#4 Март 30, 2014 16:27:11

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

doza_and
Символьные ссылки не помогает сделать
Какие-такие символьные ссылки? Совершенно не понял о чём речь.

Офлайн

#5 Март 30, 2014 17:44:24

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Блин! Ну почему в древнем Foxpro 2.6 я спокойно могу связать таблицу из c:\babayka\table1 с z:\chuchundra\table2 посредством простого одного-единственного SQL-запроса и получить курсор в памяти или новую таблицу на диске, а в совремОнных языках эта плёвая фигня превращается в расфигнищищу непреодолимую???
БЕЗОБРАЗИЕ! Я буду жаловаться в спортлото!!!

Офлайн

#6 Март 30, 2014 19:59:31

4kpt_II
От: Харьков
Зарегистрирован: 2013-10-24
Сообщения: 999
Репутация: +  58  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Не проблема. Я использую готовый ORM SQLAlchemy. Там все это можно. Но вот я не уверен, будет ли он работать с кайфовым продуктом от Microsoft

Офлайн

#7 Март 31, 2014 05:52:10

ajib6ept
От: От: От: От: От: От: От: От:
Зарегистрирован: 2013-08-04
Сообщения: 297
Репутация: +  26  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

4kpt_II
Не проблема. Я использую готовый ORM SQLAlchemy. Там все это можно. Но вот я не уверен, будет ли он работать с кайфовым продуктом от Microsoft

Диалект написан http://docs.sqlalchemy.org/en/rel_0_9/dialects/



_________________________
Python golden rule: Do not PEP 8 unto others; only PEP 8 thy self.
Don't let PEP 8 make you insanely intolerant of other people's code.

Офлайн

#8 Март 31, 2014 07:17:07

PooH
От:
Зарегистрирован: 2006-12-05
Сообщения: 1948
Репутация: +  72  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Pluto
Блин! Ну почему в древнем Foxpro 2.6 я спокойно могу связать таблицу из c:\babayka\table1 с z:\chuchundra\table2 посредством простого одного-единственного SQL-запроса и получить курсор в памяти или новую таблицу на диске, а в совремОнных языках эта плёвая фигня превращается в расфигнищищу непреодолимую???
Потому, что Foxpro 2.6 был вершиной развития файл-серверных баз данных, а все что позже, это только так, некрофилов вроде вас побаловать. Кстати, в 64-х разрядной винде вас ждет неприятный сюрприз.
Pluto
Не могу я справочную таблицу запихивать в один каталог с обрабатываемыми данными! Эти файлы потом из этого каталога пользователю нужно будет брать и уносить, так сказать. А если там помимо нужных файлов будет ещё и куча справочников, то в такой каше пользователю будет очень неудобно выбирать требуемое.
Копируйте обрабатываемые файлы в каталог со справочниками, а после обработки обратно в каталог пользователя, заодно и undo получите.



Вот здесь один из первых отарков съел лаборанта. Это был такой умный отарк, что понимал даже теорию относительности. Он разговаривал с лаборантом, а потом бросился на него и загрыз…

Отредактировано PooH (Март 31, 2014 07:20:16)

Офлайн

#9 Март 31, 2014 07:49:20

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

PooH
Кстати, в 64-х разрядной винде вас ждет неприятный сюрприз.
Не ждёт. Если питон используется 32-ух разрядный, то ODBC работает без проблем. Проверено на Win 7 Home Premium.

PooH
заодно и undo получите.
Не требуется. Файлы не должны ни коим образом изменяться! Это не БД для работы, это скорей передаточные файлы из которых нужно вытянуть статистику.

PooH
Копируйте обрабатываемые файлы в каталог со справочниками, а после обработки обратно в каталог пользователя, заодно и undo получите.
И этот извращенец называет меня некрофилом!
Но, видимо, придётся стать некрофилом-извращенцем. Некуда деваться.

П.С. Основных dbf-файлов может быть и пару-тройку десятков, а справочников пара-тройка штук, так что копировать лучше будет именно справочники.

Офлайн

#10 Март 31, 2014 11:32:39

Pluto
Зарегистрирован: 2012-05-29
Сообщения: 177
Репутация: +  2  -
Профиль   Отправить e-mail  

pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?

Короче, сделал два объекта-соединения к разным каталогам.
А потом, как нынче модно говорить, тупо перебор значений по двум курсорам. “Бегу” по значениям из одного курсора и ищу их в курсоре, который хранит данные из нужного справочника. Средствами самого питона (for, if in).
Великая скорость не нужна, так что и так сойдёт!

Но в спортлото я всё равно буду жаловаться!!!

Офлайн

  • Начало
  • » Базы данных
  • » pyodbc. Как можно сделать выборку из таблиц, находящихся в разных каталогах?[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version