代码之家  ›  专栏  ›  技术社区  ›  Mohamed Azizi

使用Python从sql server数据库检索数据

  •  2
  • Mohamed Azizi  · 技术社区  · 6 年前

    import pyodbc 
    cnxn = pyodbc.connect("Driver={SQL Server Native Client 11.0};"
                            "Server=mySRVERNAME;"
                            "Database=MYDB;"
                            "uid=sa;pwd=MYPWD;"
                            "Trusted_Connection=yes;")
    
    
    cursor = cnxn.cursor()
    cursor.execute('select DISTINCT firstname,lastname,coalesce(middlename,\' \') as middlename from Person.Person')
    
    for row in cursor:
        print('row = %r' % (row,))
    

    有什么想法吗?感谢您的帮助:)

    1 回复  |  直到 6 年前
        1
  •  5
  •   Mohamed Azizi    6 年前

    必须与游标一起使用fetch方法。例如

    for row in cursor.fetchall():
        print('row = %r' % (row,))
    

    编辑:

        If there are no rows, an empty list is returned. 
        If there are a lot of rows, *this will use a lot of memory.* 
    

    未读行由数据库驱动程序以压缩格式存储,通常从数据库服务器批量发送。

    .

    如果我们要一次处理一行, 我们可以用光标本身作为一个内部处理器 此外,我们可以简化它,因为cursor.execute()总是返回一个游标:

    for row in cursor.execute("select bla, anotherbla from blabla"): 
        print row.bla, row.anotherbla
    

    Documentation