[Microsoft] [ODB C SQL Драйвер сервера] [SQL Сервер] Невозможно удалить базу данных «MyNewDatabase», поскольку она используется в данный момент. - PullRequest
0 голосов
/ 25 февраля 2020

Теперь я создал два разных соединения, например, у меня есть .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 и вызову их, когда нужно, но я попробовал, это не работает, У кого-нибудь есть идеи, как решить эту проблему?

...