0

好的,这是我的用例。我必须连接到不同类型的 DB(MSSQL、oracl、MYSQL 等)。我有每个这些数据库的 .sql 文件。由于似乎 sqlalchemy 无法运行 .sql 文件,因此我们需要通过连接从 .sql 文件中一一打开并执行语句。

伙计们,我有这些信息,我想使用 SQL Alchemy 进行连接。

<db type="MSSQL" version="2005" patch_level="SP2" port="1433" id="MSSQLSERVER"/>

这里 MSSQLServer 是实例。没有提供数据库信息。那么我需要数据库名称才能连接到数据库吗?

这是我的命令

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()
4

1 回答 1

1

你不需要数据库名称,你可以使用我写的这个函数:(它适用于我的 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 语句中,你会说 DB 和 table 是这样的:

INSERT INTO `dbName`.`dbTable`.........
于 2013-09-25T09:38:24.367 回答