【问题标题】:What's the difference between pyodbc and MySQLdb?pyodbc 和 MySQLdb 有什么区别?
【发布时间】:2011-10-09 21:42:18
【问题描述】:

我在 win x64 上使用 python 2.6 用 pyodbc 编写了一些代码,我没有遇到任何问题。 使用相同的代码切换到 MySQLdb 我得到错误。

示例。长对象不可迭代......

pyodbc 和 MySQLdb 有什么区别?

编辑

import csv, pyodbc, os 
import numpy as np

cxn = pyodbc.connect('DSN=MySQL;PWD=me') 
import MySQLdb
cxn =  MySQLdb.connect (host = "localhost",user="root",passwd ="me")

csr = cxn.cursor()


try:

   csr.execute('Call spex.updtop')

   cxn. commit

except: pass 

csr.close()
cxn.close() 
del csr, cxn 

【问题讨论】:

  • 那是?对你来说显而易见的事情对我来说可能不是
  • 很明显 pyodbc 使用 ODBC 而 MySQLdb 使用 MySQL 客户端库。如果您想知道除此之外的任何内容,则需要显示代码。
  • 没有代码。上面调用了Mysql中的一个SP。似乎 MySQL 挂断了(null)。这就是迄今为止在 Win 上遇到的情况。在 fedora 上,st= csr.execute("select ......from ......"), d =list(st)... throws 'long' object is not iterable。
  • 必须有代码。在 Python 中你会怎么做呢?
  • 从代码开始。可以发sp.updtop吗?

标签: python mysql-python pyodbc


【解决方案1】:

如果没有看到代码,就不清楚为什么会出现错误。正如 Ignacio Vazquez-Abrams 评论的那样,您可以使用任何一个连接到 MySQL 数据库,并且它们都实现了 Python DB API 的 2.x 版本,尽管它们的底层工作方式完全不同。

需要考虑的一些事项:

  • 您是否使用了可能未在两者中实现的 Python DB API 扩展?
  • 这两个库将 MySQL 数据类型转换为 Python 数据类型的方式是否相同?
  • 有可以发布的示例代码吗?

【讨论】:

  • 恐怕在没有存储过程定义的情况下,您发布的代码中的内容太少了。祝你好运,晚安。
猜你喜欢
  • 1970-01-01
  • 2017-08-23
  • 2010-10-02
  • 2011-12-12
  • 2010-09-16
  • 2012-03-14
  • 2012-02-06
  • 2011-02-25
  • 2011-11-22
相关资源
最近更新 更多