好的,这是我的用例。我要连接到不同类型的数据库(MSSQL,oracl,MYSQL等)。我为每个数据库都有.sql文件。因为似乎sqlalchemy无法运行.sql文件所以我们需要通过连接从.sql文件中逐个打开并执行语句。
所以伙计们,我有这些信息,我想使用SQL Alchemy进行连接。
<db type="MSSQL" version="2005" patch_level="SP2" port="1433" id="MSSQLSERVER"/>
此处MSSQLServer是实例。没有提供数据库信息。所以我需要DB名称才能连接到DB吗?
这是我的命令
engine = create_engine('mssql+pyodbc://sa:pass@172.21.153.227/MSSQLSERVER', echo=True)
这是我的完整代码
from sqlalchemy.engine import create_engine
engine = create_engine('mssql+pyodbc://sa:pass@172.21.153.227', echo=False)
connection = engine.connect()
connection.execute(
"""
select @@version
"""
)
connection.close()
答案 0 :(得分:0)
你不需要db名称,你可以使用我写的这个函数: (它在mySQL上适用于我)
def ConnectToDB(self, server, uid, password):
"""
this method if for connecting to a db
@param server: server name
@param uid: username
@param password: password
"""
connection_string = 'mysql://{}:{}@{}'.format(uid, password, server)
try:
self.engine = create_engine(connection_string)
self.connection = self.engine.connect()
except exc.SQLAlchemyError, e:
self.engine = None
return False, e
return True, None
在你的SQL语句中,你会说数据库和表格是这样的:
INSERT INTO `dbName`.`dbTable`.........