首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用python连接到SQL server时出错

使用python连接到SQL server时出错
EN

Stack Overflow用户
提问于 2015-06-13 15:57:11
回答 1查看 1.9K关注 0票数 5

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

在安装了SQL Server 2014并创建了一个名为User的数据库之后,我只是试图对我的数据库运行一些非常基本的命令,但是我一次又一次地陷入了第一个障碍!

我已经安装了pymssql和pyodbc,并尝试使用这些命令直接运行命令,但是失败了。(例如,pymssql给我一个TypeError:当我设置变量conn =pymssql.connect(服务器、用户、密码、“NoneType”)时,'NoneType‘类型的参数不可迭代。

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

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

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

代码语言:javascript
复制
    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)

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

而且,如果有人可以引导我使用Python-SQL服务器的超级初学者资源,那就太棒了,因为这看起来是多么的复杂!

EN

回答 1

Stack Overflow用户

发布于 2015-06-15 15:04:54

下面是一个连接函数和通过pyodbc连接的示例。通过pymssql进行连接应该像格式化pymssql的连接字符串一样容易。我提供了Windows和Linux选项,但只在Linux上进行了测试。希望能帮上忙。

代码语言:javascript
复制
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()
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30820653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档