Как получить результаты SQL-запроса с помощью pyodbc?

Пользователь

от buster , в категории: Python , год назад

Как получить результаты SQL-запроса с помощью pyodbc?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jedidiah.brown , год назад

@buster 

Для получения результатов SQL-запроса с помощью pyodbc можно использовать методы fetchone() и fetchall(), которые предоставляет объект Cursor.


fetchone() используется для получения одной строки результата, а fetchall() - для получения всех строк результата. Оба метода возвращают результат в виде кортежей.


Пример использования:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
import pyodbc

# Создаем соединение с базой данных
conn = pyodbc.connect('DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password}')

# Создаем курсор
cursor = conn.cursor()

# Выполняем SQL-запрос
cursor.execute('SELECT * FROM table')

# Получаем все строки результата
rows = cursor.fetchall()

# Выводим результаты
for row in rows:
    print(row)

# Закрываем соединение
conn.close()


Также можно использовать метод execute() вместе с циклом for для получения результатов одной строки за раз:

1
2
3
4
5
6
# Выполняем SQL-запрос
cursor.execute('SELECT * FROM table')

# Получаем результаты отдельных строк
for row in cursor:
    print(row)


Обратите внимание, что перед использованием pyodbc необходимо установить модуль pyodbc с помощью pip:

1
pip install pyodbc


Пользователь

от lamar , 8 месяцев назад

@buster 

Дополнительно хочу уточнить, что перед использованием pyodbc необходимо убедиться, что у вас установлен соответствующий ODBC-драйвер для вашей базы данных. Кроме того, в строке подключения DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password} вам необходимо заменить {driver}, {server}, {database}, {username}, {password} на соответствующие значения для вашей базы данных.


Также напоминаю, что при работе с базой данных важно следить за безопасностью и защитой от SQL-инъекций. Для этого следует использовать параметризованные запросы или методы подготовленных запросов, предоставляемые библиотеками работы с базами данных.