• Добро пожаловать на Форум пользователей ПО АСКОН. Пожалуйста, авторизуйтесь.
 

Уважаемые пользователи,

Хотим проинформировать вас о режиме работы регистрации на нашем сайте.

Зарегистрироваться возможно в рабочие дни, с 8:00 до 20:00 (мск).

Если у вас возникнут вопросы или потребуется дополнительная информация, не стесняйтесь обращаться к нашей службе поддержки. Вы можете связаться с нами по указанным контактным данным на нашем сайте.

Благодарим вас за понимание и сотрудничество. Мы ценим ваше терпение и стремимся предоставить вам лучший опыт использования нашего сервиса.

С уважением,
Команда Ascon

Как обратиться к БД SQL из макроса

Автор Sasha_teh, 11.09.23, 15:20:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Sasha_teh

Доброго дня!

Хочу написать макрос и в нём обратиться к таблице БД SQL. Но получаю ошибку.
Как это можно исправить? И общий вопрос - из макроса можно обратиться к БД?

p3452


Sasha_teh

Я так понимаю что-то неладное с библиотекой odbc. Ведь макрос-то для КОМПАСА.
Если просто написать скрипт и в нём использовать библиотеку odbc ошибок никаких нет. А подрубается именно в макросе для КОМПАСА.

Doom

#3
Для начала его нужно установить?

тут какую то штуку нашел - что она делает?
python -m pip install pyodbc

https://github.com/mkleehammer/pyodbc
https://github.com/mkleehammer/pyodbc/issues?q=is%3Aopen
https://github.com/mkleehammer/pyodbc/issues?q=is%3Aclosed

Slaviation

#4
YaGPT2 вещает :^)

Для обращения к базе данных SQL из Python, вы можете использовать различные библиотеки, такие как MySQL-Connector, Psycopg, SQLAlchemy, или любой другой в зависимости от типа используемой базы данных. В этом примере мы будем использовать MySQL и MySQL-Connector.

Шаг 1: Установите MySQL-connector
Прежде всего, установите MySQL-connector с помощью команды pip:

pip install mysql-connector

Шаг 2: Создайте подключение к базе данных
Импортируйте MySQLdb и создайте подключение к базе данных. Замените 'your_host', 'your_database', 'your_user' и 'your_password' на соответствующие значения:

import MySQLdb

conn = MySQLdb.connect(host='your_host',
database='your_database',
user='your_user',
passwd='your_password')

Шаг 3: Выполните SQL-запрос
Используйте метод cursor() для создания курсора, который можно использовать для выполнения SQL-запросов. Затем используйте метод execute() курсора для выполнения запроса.

cursor = conn.cursor()
sql = "SELECT * FROM your_table"
cursor.

execute(sql)

Шаг 4: Получите результат запроса
Теперь вы можете получить результаты запроса, используя методы fetchone(), fetchall() или fetchmany() курсора. Например, следующий код выведет все результаты запроса:

results = cursor.fetchall()
for row in results:
print(row)

Обратите внимание, что fetchall() загружает все результаты сразу в память, что может быть неэффективным для больших наборов данных. Вместо этого вы можете использовать fetchmany(size) с небольшим размером для итерации по результатам запроса небольшими порциями.

После того, как вы получили все нужные данные из базы, не забудьте закрыть подключение и курсор:

cursor.close()
conn.close()

Sasha_teh

Спасибо всем за подсказки, но я всё же не могу понять почему import pyodbc не срабатывает? Создаётся такое впечатление что python который в макросах КОМПАСА не дружит с pyodbc.

pr0100

Цитата: Sasha_teh от 13.09.23, 13:29:22Спасибо всем за подсказки, но я всё же не могу понять почему import pyodbc не срабатывает? Создаётся такое впечатление что python который в макросах КОМПАСА не дружит с pyodbc.
Вам интерпретар выдал ошибку, что у него этого модуля нет, не установлен.
Перенесите библиотеки компаса с пайвина пайтона 3.2. В свой питон и все.

pr0100

Цитата: Doom от 11.09.23, 19:46:02Для начала его нужно установить?

тут какую то штуку нашел - что она делает?
python -m pip install 
Это стандартная команда установки библиотек пайтона, через командную строку.

Doom

Раз разобрались с установкой и настройкой то вот примерчик:

import pyodbc

# Подключение к базе данных
conn = pyodbc.connect('DRIVER={driver_name};SERVER=server_name;DATABASE=database_name;UID=username;PWD=password')

# Создание курсора для выполнения SQL-запросов
cursor = conn.cursor()

# SQL-запрос для вставки данных в таблицу
sql = "INSERT INTO table_name (column1, column2, column3) VALUES (?, ?, ?)"

# Параметры для вставки данных
data = ('Value1', 'Value2', 'Value3')

# Выполнение SQL-запроса с параметрами
cursor.execute(sql, data)

# Подтверждение изменений в базе данных
conn.commit()

# Закрытие курсора и соединения с базой данных
cursor.close()
conn.close()