【问题标题】:Use Turbodbc to connect to SQL Server, simple select使用Turbodbc连接SQL Server,简单选择
【发布时间】:2019-11-27 09:39:52
【问题描述】:

我无法让 Python Turbodbc 连接到 Sql Server 表(看起来很简单)来读取或写入用户表。但是我已经建立了 ODBC 连接,并且可以从中打印出一个对象列表。

1 列出来自服务器的对象以测试连接。似乎工作:

from turbodbc import connect, make_options
options = make_options(prefer_unicode=True)
connection = connect(dsn='FPA', turbodbc_options=options)
cursor = connection.cursor()
cursor.execute('''SELECT * FROM sys.objects WHERE schema_id = SCHEMA_ID('dbo');''')

2 简单选择:不起作用

cursor.execute('''SELECT * from [dbo].[Kits_Rec];''')    

从 #1 我得到

来自 #2 消息:[Microsoft][ODBC Driver 17 for SQL Server][SQL Server]无效的对象名称“dbo.Kits_Rec”。

enter image description here

【问题讨论】:

    标签: python sql-server turbodbc


    【解决方案1】:

    一个 SQL Server 包含多个数据库,您的 dsn "FPA" 可能没有指定数据库名称,因此您连接到主数据库而不是包含您的 Kits_Rec 表的数据库。

    修复该 dsn 条目以指定正确的数据库,或改用此语法:

    connection = connect(driver="MSSQL Driver",
                         server="hostname",
                         port="1433",
                         database="myDataBase",
                         uid="myUsername",
                         pwd="myPassword")
    

    【讨论】:

    • 我尝试了上述规格,但由于我使用的是集成的 Windows 连接,因此无法填充凭据信息。所以我按照你的建议修复了dsn,就成功了!我很感激,也有点尴尬,我从来没有想过。谢谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-31
    • 2010-09-27
    • 1970-01-01
    • 2019-10-23
    • 2016-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多