SQLAlchemy使用实例名称连接到MSSQL

时间:2013-09-25 08:54:38

标签: python sql sql-server database sqlalchemy

好的,这是我的用例。我要连接到不同类型的数据库(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()

1 个答案:

答案 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`.........