Всем добрый день. Помогите решить проблему.
1. Подключаюсь к БД через
pyodbc
2. Пытаюсь извлечь данные из таблицы ( хочу получить данные столбца ACTIVE у блока с именем 4-20 )
3. Получаю ошибку:
Мой код:
import pyodbc
def connect_to_base(): # Подключение к БД
global cursor
server = ************
database = ************
username = ************
password = ************
cnxn = pyodbc.connect(
'DRIVER={ODBC Driver 17 for SQL Server};SERVER=' + server + ';DATABASE=' + database + ';UID=' + username +
';PWD=' + password)
cursor = cnxn.cursor()
def select(column, db_table, obj): # Чтение таблиц в БД
cursor.execute('SELECT {} FROM {} WHERE NAME = {}'.format(column, db_table, obj))
row = cursor.fetchone()
while row:
if row[0] != False:
print('Блок {} - активен <<OK OK OK>> [1/1]'.format(obj))
else:
print('Блок {} - неактивен ERROR ERROR ERROR [1/1]')
row = cursor.fetchone()
connect_to_base()
select('ACTIVE', '[dbo].[BLAST_BLOCK]', '4-20')
После выполнения функции select появляется ошибка:
Traceback (most recent call last):
File "C:/Users/user/Desktop/Testing/123.py", line 28, in
select('ACTIVE', '[dbo].[BLAST_BLOCK]', '4-20')
File "C:/Users/user/Desktop/Testing/123.py", line 17, in select
cursor.execute('SELECT {} FROM {} WHERE NAME = {}'.format(column, db_table, obj))
pyodbc.DataError: ('22018', "[22018] [Microsoft][ODBC Driver 17 for SQL Server][SQL Server]Conversion failed when converting the nvarchar value 'NoBlock1' to data type int. (245) (SQLExecDirectW)")
Пробовал конвертировать в CAST ( {} AS NVARCHAR ), успехов не принесло.
Столбец name, тип данных: nvarchar