SQLAlchemy не подключается к SQL Server с помощью драйвера ODBC 18 для SQL Server, но pyodbc делает это.Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 SQLAlchemy не подключается к SQL Server с помощью драйвера ODBC 18 для SQL Server, но pyodbc делает это.

Сообщение Anonymous »

Я работаю на компьютере с Windows и не могу подключиться к своему серверу Microsoft SQL с помощью SQLAlchemy.
У меня есть следующие учетные данные для входа: IP, имя сервера, имя пользователя, база данных, пароль.
Я не могу использовать авторизацию Windows, так как хочу периодически запускать готовый скрипт с помощью r, pi или облачного сервиса в течение дня.

Код: Выделить всё

password = 'xxx'
server = os.environ['xxx']
database = os.environ['xxx']
username = os.environ['xxx']
driver='{ODBC Driver 18 for SQL Server}' #does not work with pyodbc if + used instead of {}

connection_string = f"mssql+pyodbc://{username}:{password}@{server}/{database}?driver={driver};Encrypt=False"

try:
# Create the SQLAlchemy engine
engine = create_engine(connection_string)

# Test the connection
with engine.connect() as connection:
# Use the inspector to get table names
inspector = inspect(connection)
tables = inspector.get_table_names()

# Print the list of tables
print("Tables in the database:")
for table in tables:
print(table)

except Exception as e:
print(f"Error connecting to the database: {e}")
Я могу без проблем подключиться к серверу, используя только pyodbc.

Код: Выделить всё

connection_string = f'DRIVER={driver};SERVER={server};DATABASE={database};UID={username};PWD={password};TrustServerCertificate=Yes;'

try:
connection = pyodbc.connect(connection_string)
print("Connection successful!")
connection.close()
except Exception as e:
print(f"Error connecting to the database: {e}")
При попытке использовать SQLAlchemy я получаю ошибку 08001, IM0002 или IM0012 в зависимости от того, что я делаю со строкой подключения.
В driver= '{Драйвер ODBC 18 для SQL Server}' Я также пробовал + вместо пробелов с и без {}
Я также пробовал с и без TrustedServerCertificate=Да/True и Encrypt=False/No
Я ожидал, что SQLAlchemy подключится так же легко, как pyodbc, но не могу этого получить работает.
Я также попробовал метод, предложенный здесь.
Полная ошибка:

Ошибка подключения к базе данных: (pyodbc.Error) ('IM012', '[IM012] [Microsoft][ODBC Driver Manager] Синтаксическая ошибка ключевого слова DRIVER (0) (SQLDriverConnect)')

Будем благодарны за любую информацию.

Подробнее здесь: https://stackoverflow.com/questions/790 ... server-but
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»