【问题标题】:Does pyodbc have an execute scalar functionpyodbc 是否有执行标量函数
【发布时间】:2011-05-13 16:22:30
【问题描述】:

pyodbc 有执行标量函数吗?

.net 中的 sql 库上的 executescalar 之类的东西?

【问题讨论】:

    标签: python pyodbc


    【解决方案1】:

    pyodbc 游标有一个fetchone() 方法。

    cursor.execute("select user_name from users where user_id=?", userid)
    row = cursor.fetchone()
    if row:
        print row.user_name 
        # or print row[0]
    

    【讨论】:

    • 为什么会有 5 个赞成票,使用游标作为单个返回值是开销?
    • @JeremyThompson - 不确定你的意思?所有 SQL 都使用 pyodbc 中的 db 游标执行。
    【解决方案2】:

    我不这么认为,但sqlalchemy 确实如此(除了使用 ORM 等之外,它还可以用作 DB API 库的便捷高级接口)。举个例子:

    import sqlalchemy
    
    # using mssql as an example because sqlalchemy uses pyodbc as the default driver for MS Sql Server
    engine = sqlalchemy.create_engine("mssql://myserver/mydb")
    # first column of first row is returned
    username = engine.scalar("select username from users where userid = 1")
    

    【讨论】:

      【解决方案3】:

      您可以像这样简化pyodbc 调用:

      name = cursor.execute("select user_name from users where user_id=?", userid).fetchval()
      

      因为

      fetchval()

      如果有,则返回第一行的第一列 结果

      *执行(sql, 参数)

      准备并执行一条 SQL 语句,返回 Cursor 对象本身

      【讨论】:

      • 是原版pyodbc的正确答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-02
      相关资源
      最近更新 更多