Теперь я создал два разных соединения, например, у меня есть .py
файл с именем connec
в качестве кода ниже:
from sqlalchemy import create_engine
import pyodbc
# pyodbc connection connect to server
conn = pyodbc.connect(
"driver={SQL Server};server=WINKPN-3B5JTT2\SMARTRNO_EXPRESS; database=master; trusted_connection=true",
autocommit=True, Trusted_Connection='Yes')
crsr = conn.cursor()
# connect db (connect to database name) using SQL-Alchemy
engine = create_engine(
'mssql+pyodbc://WINKPN-3B5JTT2\SMARTRNO_EXPRESS/MyNewDatabase?driver=SQL+Server+Native+Client+11.0')
connection = engine.connect()
Так что теперь первое соединение связано с подключением сервера , а второй - это соединение с базой данных, оба соединения работают нормально, но вместе я обнаружил следующую ошибку:
Traceback (most recent call last):
File "C:/Users/haroo501/PycharmProjects/ToolUpdated/app.py", line 16, in <module>
delete_and_create_db.delete_database()
File "C:\Users\haroo501\PycharmProjects\ToolUpdated\database\delete_and_create_db.py", line 9, in delete_database
connec.crsr.execute(delete_bd_query)
pyodbc.ProgrammingError: ('42000', '[42000] [Microsoft][ODBC SQL Server Driver][SQL Server]Cannot drop database "MyNewDatabase" because it is currently in use. (3702) (SQLExecDirectW)')
При попытке запустить следующий код:
from database import connec
def create_db():
create_bd_query = "CREATE DATABASE MyNewDatabase"
connec.crsr.execute(create_bd_query)
def delete_database():
delete_bd_query = "DROP DATABASE MyNewDatabase"
connec.crsr.execute(delete_bd_query
Так что я думаю, что есть проблема, чтобы использовать оба соединения или что-то, может быть, я поставил два соединения я def
и вызову их, когда нужно, но я попробовал, это не работает, У кого-нибудь есть идеи, как решить эту проблему?