无法使用python连接到SQL Server

Lem*_*roy 5 python sql-server sqlalchemy pyodbc pymssql

我最近在我的PC上安装了Microsoft SQL Server 2014,因为我想为我正在构建的Web应用程序创建一个数据库(我已经学习了Python一年,并且对SQLite有非常基本的经验).

在安装SQL Server 2014并创建一个名为Users的数据库之后,我只是尝试将一些非常基本的命令运行到我的数据库中,但我一次又一次地遇到了第一个障碍!

我已经安装了pymssql和pyodbc,并尝试直接使用这些命令运行命令,但都失败了.(例如,当我设置变量conn = pymssql.connect(server,user,password,"tempdb")时,pymssql给我一个TypeError:'NoneType'类型的参数不可迭代

我最近的尝试是使用SQLalchemy来实现我期待已久的SQL数据库连接.但是,在安装它之后,它失败了以下错误: "sqlalchemy.exc.OperationalError:(pymssql.OperationalError)(20009,'DB-Lib错误消息20009,严重性9:\n无法连接:Adaptive Server不可用或不存在\n未知错误期间的nNet-Lib错误(10035)\n')"

我需要回答的问题是,如何使用SQLalchemy开始与我的数据库通信?

我使用的代码如下:从sqlalchemy import*

    engine = create_engine('mssql+pymssql://Han & Lew:@SlugarPlum:1433/Users')

    m = MetaData()

    t = Table('t', m,
            Column('id', Integer, primary_key=True),
            Column('x', Integer))

    m.create_all(engine)
Run Code Online (Sandbox Code Playgroud)

是的,我的电脑叫做SlugarPlum.用户是Han&Lew.我的服务器名为THELROYSERVER.DSN = 1433.没有密码.(我不知道我在网上提供这些信息是否明智,但我所拥有的数据不敏感,所以我觉得值得一试.)

此外,如果任何人都可以指引我使用Python-SQL服务器的超初学者资源,这将是非常棒的,因为我似乎被这看起来很复杂!

Fli*_*rPA 1

这是一个连接函数和通过 pyodbc 连接的示例。通过 pymssql 连接应该像格式化 pymssql 的连接字符串一样简单。我提供了 Windows 和 Linux 选项,但仅在 Linux 上进行了测试。我希望它有帮助。

def sqlalchemy_connect(connect_string): 
    """ Connect to the database via ODBC, start SQL Alchemy engine. """

    def connect():
        return pyodbc.connect(connect_string, autocommit=True)

    db = create_engine('mssql://', creator=connect)
    db.echo = False

    return db

def main():
    global DBCONN

    # Linux with FreeTDS
    connect_string = "DRIVER={FreeTDS};SERVER=<server name>;PORT=<port num>;DATABASE=<db>;UID=<user>;PWD=<password>;TDS_Version=<version num>;"

    # Windows with SQL Server
    connect_string = "DRIVER={SQL Server};SERVER=<server name>;PORT=<port num>;DATABASE=<db>;UID=<user>;PWD=<password>;"

    DBCONN = sqlalchemy_connect(connect_string)


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)