Sql server 使用pyodbc从file.mdf提取数据

Sql server 使用pyodbc从file.mdf提取数据,sql-server,python-3.x,pyodbc,pymssql,msde,Sql Server,Python 3.x,Pyodbc,Pymssql,Msde,我有一个管理药房的应用程序,只是一个例子,这个应用程序是开发的,它涉及到一个单一的药房。此应用程序映射在Micrsoft DBMS MSSDE上 每个药房都会生成数据库文件pharmacy.mdf、pharmacy_log.mdf 因此,在从不同的药店获得这些文件后,我编写了一个脚本,以自动从这些文件中提取数据 在应用程序运行时,脚本将执行以下任务: -停止服务器MSSQL服务器 -从文件夹文件恢复中复制两个文件,并将它们粘贴到应用程序的路径中 -重新启动服务器 -导出所需的数据 与所讨论的数据

我有一个管理药房的应用程序,只是一个例子,这个应用程序是开发的,它涉及到一个单一的药房。此应用程序映射在Micrsoft DBMS MSSDE上

每个药房都会生成数据库文件pharmacy.mdf、pharmacy_log.mdf

因此,在从不同的药店获得这些文件后,我编写了一个脚本,以自动从这些文件中提取数据

在应用程序运行时,脚本将执行以下任务: -停止服务器MSSQL服务器 -从文件夹文件恢复中复制两个文件,并将它们粘贴到应用程序的路径中 -重新启动服务器 -导出所需的数据

与所讨论的数据库的连接使用python pyodbc模块

一旦提取在特定时间运行,就会崩溃

我发现了这个错误:

cursor.execute'select*from Pha.dbo.table_test' pyodbc.Error:'01000','[01000][Microsoft][ODBC SQL Server驱动程序][共享内存]连接写入发送10054 SQLExecDirectW'

我为连接编写了以下代码:

log = os.path.join(path,c,"SIC_log.ldf")
mdf = os.path.join(path,c,"SIC.mdf")
print(log)
print(mdf)
subprocess.call('net stop mssqlserver')
time.sleep(2)
os.system('copy "' + log + '" "' + MSSQL_DIR+'"')
os.system('copy "' + mdf + '" "' + MSSQL_DIR+'"')
time.sleep(2)
subprocess.call('net start mssqlserver')
time.sleep(2)


# Open a connection with the database
cnxn = pyodbc.connect('DSN=SIC_ODBC')
time.sleep(2)
extract_clo(cnxn, wb, ws)
cnxn.close()

如果启动SQL Server Management Studio并附加。。。数据库文件可以手动浏览表、运行查询等吗?可以!我可以浏览表格和运行查询。好的,很好。如果您手动停止SQL Server,请在现有的.mdf和.ldf文件上手动复制两个不同的.mdf和.ldf文件,然后手动重新启动SQL Server您能从SSMS成功访问数据库吗。。。从一个简单的Python脚本开始,它只打开并读取数据库,而不需要交换数据?是的,我可以完成上面描述的所有工作。