【问题标题】:SQLAlchemy to connect to MSSQL using instance nameSQLAlchemy 使用实例名称连接到 MSSQL
【发布时间】:2013-09-30 18:38:51
【问题描述】:

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

【问题讨论】:

    标签: python sql sql-server database sqlalchemy


    【解决方案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`.........
    

    【讨论】:

    • 我已经编辑了我的问题,以提供一些关于我在这里要完成的工作的背景。
    • 我试过没有实例名称。它似乎不适用于 MSSQL。我收到以下错误 - sqlalchemy.exc.DBAPIError: (Error) ('IM002', '[IM002] [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified (0) (SQLDriverConnect) ') 无 无
    • 您是否以这种方式运行您的 sql 语句:self.connection.execute(SQLStatment) PS您写的错误是在连接上还是在您尝试发送语句时?
    • 我搜索了一下,我想你可以在这里找到答案:stackoverflow.com/a/15627017/1982962
    • 我查看了您发送的网址,但我仍然无法连接到数据库。我做了更多的研究,似乎从 windows 连接到 windows 时 sqlserver odbc 驱动程序不是问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-03-10
    • 1970-01-01
    • 2018-03-26
    • 2022-09-29
    • 2018-10-29
    • 2013-03-15
    • 2019-10-01
    相关资源
    最近更新 更多