Форум программистов, компьютерный форум, киберфорум
Python: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.84/19: Рейтинг темы: голосов - 19, средняя оценка - 4.84
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29

База данных

31.01.2016, 11:01. Показов 6243. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте!
Я совсем новичок(не программист), но должен решать такую задачу.
Нужно взять данные из БД Access, и сделать изменения в них. Читал, что нужно исползовать модул pyodbc или pypyodbc, но таки не разобрался в них.
При возможности прошу рассказать поподробнее.
Заранее спасибо.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
31.01.2016, 11:01
Ответы с готовыми решениями:

База данных
Делаю приложение на PyQt, нужна БД. В PyQt есть драйвер для БД, но там надо по старинке запросы писать... А я уже так привык пользоваться...

База данных
Всем привет, у кого-нибудь есть идеи, каким образом можно было бы использовать БД(MySQL) в калькуляторе?

База данных имен
Сделал такой набор массивов для Питона для 2-х имён Anna = Anton = if Name in Anna: Name = "Анна" ...

31
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
31.01.2016, 13:19
  • Как могло так получится что «совсем новичок(не программист), но должен решать»?
  • Исходных данных явно недостаточно: нужен пример базы, какие в ней данные и что надо изменить. Конкретно и с примерами.
  • Что именно Вы просите «рассказать поподробнее»: документацию по модулям pyodbc, синтаксис языка python, курс лекций по теории программирования?
1
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
01.02.2016, 07:38
ODBC - это общих шлюз для разных движков баз данных под windows.
Чтобы его использовать, вам надо сначала подключить туда вашу базу на access, это надо гуглить использование ODBC в целом, без привязки к питону.
А уж потом можно и pyodbc. Оно и понятнее будет, в таком порядке.

Добавлено через 2 минуты
А вообще, если вы "не программист", советую идти по пути наименьшего сопротивления. VBA вам в помощь, Питон тут ни к чему.
0
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
01.02.2016, 09:43  [ТС]
Во первых спасибо за ответ))
1.Так получилось что в компании программист нам не нужен, но иногда такие задачи бывают и меня поручили знакомится с Питоном. И дали первую задачу.
2.Например у нас в БД Access есть точки и их географические координати. Надо изменить координати.
3.Про синтаксис языка Python много читал на разных источниках, но так и не понял как работать с БД и с какими модулями. Вот об этом и хочется узнать.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
01.02.2016, 11:09
Цитата Сообщение от Narek16 Посмотреть сообщение
1.Так получилось что в компании программист нам не нужен, но иногда такие задачи бывают и меня поручили знакомится с Питоном. И дали первую задачу.
Питон и MS Assess - это немного разные "среды обитания". То есть прочитать вашу СУБД-то можно, да, и ODBC - самый очевидный способ, но разбираться вам всё равно придётся долго.
Выбор именно Питона был бы оправдан, если бы у вас уже была какая-нибудь информационная система на Питоне, и к ней надо было бы цеплять access, но ничего подобного, я так понял, нет.
Так что, на правах "программиста" искренне советую вам в Питоне не лезть, это плохое решение, по трудозатратам, для "непрограммиста".

Цитата Сообщение от Narek16 Посмотреть сообщение
2.Например у нас в БД Access есть точки и их географические координати. Надо изменить координати.
Для этого даже VBA не нужен, это просто SQL-запросом делается.
Так что в первую очередь советую учить SQL. Во-вторую - VBA, его используйте, если возможностей SQL не хватит. В третью - .NET, его очередь придёт, если не хватит VBA. Кстати, если вам так мил Питон - он под дотнет имеется, IronPython называется.
Подцепить access к дотнету значительно проще, чем к обычному Питону, уж поверьте.

Цитата Сообщение от Narek16 Посмотреть сообщение
но так и не понял как работать с БД и с какими модулями. Вот об этом и хочется узнать.
А нету общего способа У каждой СУБД - свой модуль для цепляния к Питону. Есть ли модуль для ms access - я не знаю, не сталкивался с этой проблемой. Если нет, то можно использовать ODBC, как общий шлюз, но но с ним я тоже не работал, так что ничего конкретного не посоветую.

Добавлено через 7 минут
Нате http://stackoverflow.com/quest... for-python
1
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.02.2016, 13:21
Цитата Сообщение от dondublon Посмотреть сообщение
В третью - .NET, его очередь придёт, если не хватит VBA.
А в случае чего pywin32 не справится с задачей? Там вроде есть необходимые возможности.
0
Эксперт NIX
 Аватар для Marinero
2796 / 2039 / 682
Регистрация: 02.03.2015
Сообщений: 6,509
01.02.2016, 14:20
Цитата Сообщение от Narek16 Посмотреть сообщение
у нас в БД Access
А так же Microsoft Access Base. Чем не устроил?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
01.02.2016, 14:24
Цитата Сообщение от alex925 Посмотреть сообщение
А в случае чего pywin32 не справится с задачей? Там вроде есть необходимые возможности.
Есть, но непрограммисту будет сложно. Я ж говорю - разные среды обитания.
Это выражается, в частности, в том, что в инете банально сложнее найти образцы.
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
01.02.2016, 14:31
Цитата Сообщение от dondublon Посмотреть сообщение
Есть, но непрограммисту будет сложно
Ну это да.
Ну с шарпом думаю не особ легче будет.
0
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
01.02.2016, 15:02  [ТС]
Большое спасибо за подробный ответ.
Наверно следую вашему совету и попробую учить SQL.
0
317 / 268 / 61
Регистрация: 12.10.2011
Сообщений: 434
01.02.2016, 15:06
Пример использования pyodbc
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# -*- coding: cp1251 -*-
BASE = 'd:\export\GAT_DATA.mdb'
USER = 'admin'
PASSWORD = '123456'
 
import pyodbc
 
cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq=%s;Uid=%s;Pwd=%s;'%(BASE,USER,PASSWORD))
cursor = cnxn.cursor()
 
cursor.execute("select TAB_N, F_NM from Staff WHERE TAB_N BETWEEN 10 AND 15")
for row in cursor.fetchall():
    print "%s %s"%(row[0],row[1])
    
print '-----------------'
 
cursor.execute("select %s,%s from %s WHERE %s BETWEEN %s AND %s"%('TAB_N', 'F_NM', 'Staff', 'TAB_N', 10, 15))
while 1:
    row = cursor.fetchone()
    if row:
        print "%s %s"%(row[0],row[1])
    else:
        break
>>>
10 СВЕТЛАНА
11 ИРИНА
13 ЛЮДМИЛА
-----------------
10 СВЕТЛАНА
11 ИРИНА
13 ЛЮДМИЛА
1
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
02.02.2016, 14:36  [ТС]
Спасибо за ответ, я скачал pyodbc, установил, но когда импортирую, дает такую ошибку
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
import pyodbc
ImportError: No module named 'pyodbc'
Что сделал не так?
0
2742 / 2341 / 620
Регистрация: 19.03.2012
Сообщений: 8,830
02.02.2016, 14:46
Цитата Сообщение от Narek16 Посмотреть сообщение
я скачал pyodbc, установил
Опиши как устанавливал
Цитата Сообщение от Narek16 Посмотреть сообщение
становил, но когда импортирую, дает такую ошибку
Значит не установил
0
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
03.02.2016, 09:09  [ТС]
Цитата Сообщение от Narek16 Посмотреть сообщение
Спасибо за ответ, я скачал pyodbc, установил, но когда импортирую, дает такую ошибку
Эту проблему решил, тепер такой эррор.
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\script.py ", line 4, in <module>
cnxn = pyodbc.connect('Driver={Microsoft Access Driver (*.mdb)};Dbq = BASE')
pyodbc.Error: ('HY000', "[HY000] [Microsoft][ODBC Microsoft Access Driver] Could not find file '(unknown)'. (-1811) (SQLDriverConnect)")

Добавлено через 1 минуту
Цитата Сообщение от alex925 Посмотреть сообщение
Значит не установил
Да, просто у меня 2 версии Питона были, установил на одном, импортировал в другом))

Добавлено через 18 часов 4 минуты
dondublon,
Цитата Сообщение от dondublon Посмотреть сообщение
Выбор именно Питона был бы оправдан, если бы у вас уже была какая-нибудь информационная система на Питоне, и к ней надо было бы цеплять access, но ничего подобного, я так понял, нет.
Оказывается, это было лишь начало задачи. Нужно создать программу, который
1.выберет точки с БД по данным параметрам
2.добавить на карту с помощю программи ArcGIS(она и напиасана на Python )
О 2-ом пункте задачи пока не думаю,но первач по моему не так сложна, просто не могу разобраться с pyodbc. Ошибки возникают каждых раз, если кто-то с этим поможет, буду благодарен.
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
03.02.2016, 09:54
Цитата Сообщение от Narek16 Посмотреть сообщение
1.выберет точки с БД по данным параметрам
Это делается sql-запросом, вида "SELECT .. FROM ... WHERE ...". SQL выходит на сцену после того, как подключите базу через odbc.
Да, тут еще вопрос, как часто вам это надо делать. Если единожды - с odbc можно не возиться, просто экспортируйте в csv.
Цитата Сообщение от Narek16 Посмотреть сообщение
2.добавить на карту с помощю программи ArcGIS(она и напиасана на Python )
Не работал с ArcGIS. Залез к ним на сайт, конкретнее - сюда:
https://developers.arcgis.com/arcgis-runtime/

Упоминания про Python там нет даже близко. Так что вы ошибаетесь. Даже API для Питона нет. Зато есть уже упомянутый .net.

Добавлено через 6 минут
А, впрочем, нет, пардон, кажется, что-то есть.
http://desktop.arcgis.com/ru/analytics/python/

Насколько я понял (могу ошибаться, но вроде так) ArcGIS использует встроенный в себя (embedded) Питон. То есть, поставляется с фиксированным набором модулей и доступом к своим, аркгисовским, данным.
Это значит, что просто так, как в обычный Питон, скачанный с python.org, вы туда pyodbc не установите.
1
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
03.02.2016, 10:09  [ТС]
dondublon,
Еще раз спасибо. Пока я думаю только о первом пункте, чтобы иметь хоть какой то результат для начала. С SQL запросами знакомилься вчера по вашему совету, и с этим наверно разберусь. Но у меня пока такая банальная проблема.
Python
1
2
3
import pyodbc
 
cnxn = pyodbc.connect( 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)};DBQ =C:\Documents and Settings\Administrator\Desktop\db1.mdb; UID=myusername; PWD = password;')
Дает такую ошибку.
Traceback (most recent call last):
File "C:\Documents and Settings\Administrator\Desktop\12.py", line 3, in <module>
cnxn = pyodbc.connect( 'DRIVER={Microsoft Access Driver (*.mdb, *.accdb)}BQ =C:\Documents and Settings\Administrator\Desktop\db1.mdb; UID=myusername; PWD = password;')
pyodbc.Error: ('HY000', '[HY000] [Microsoft][ODBC Microsoft Access Driver] Not a valid file name. (-1044) (SQLDriverConnect)')
Что делать с этим?
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
03.02.2016, 10:14

Не по теме:

Narek16, тут я пас, не работал.



Добавлено через 2 минуты
Narek16, а, нет, тут пока могу помочь .
Видимо, дело в том, что слеш в питоновских (и не только) строках - для вывода спецсимволов.
Проверьте:
Python
1
print 'C:\Documents and Settings\Administrator\Desktop\db1.mdb'
Используйте двойной слеш.
0
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
03.02.2016, 10:30  [ТС]
dondublon,
Да, я тоже гуглил и читал об этом, но ничего не могу делать.
И двойной слеш не помогает.
Миниатюры
База данных  
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
03.02.2016, 10:33
Narek16, а вот тут уже в сообщении об ошибке всё понятно сказано.
0
0 / 0 / 0
Регистрация: 31.01.2016
Сообщений: 29
03.02.2016, 10:40  [ТС]
dondublon,
Да, тут все дело было в скобках.)))
Но в первом случае другая проблема.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
03.02.2016, 10:40
Помогаю со студенческими работами здесь

База данных mysql
Каким образом записать и считать изображение в mysql?

База данных Google Sheets
Здравствуйте! Получаю ошибку в консоли вида: File...

База данных Гостиничный комплекс
Всем привет. Нужна помощь. Мне необходимо на основе ООП и классов описать базу данных Гостиничный комплекс. Не могу сообразить, какие...

Очистилась база данных на Heroku
Я залил телеграм бота на Heroku и все было нормально, пока не заметил что после перезапуска проекта база скинулась к состоянию когда я ее...

Объектная база данных для python
День добрый Нужна база данных, умеющая сохранять объекты как они есть в базу, что-то вроде ZODB Этот ZODB весьма хорош, для...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru