python中接收查询结果数据集

sfasssfass 2010-10-12 11:05:24
在Python中我需要获取select * from aa的查询结果中的数据,要怎么做?数据库是mssql的。
cnn = win32com.client.Dispatch(r'ADODB.Connection')
cmd = win32com.client.Dispatch(r'ADODB.Command')
ret = win32com.client.Dispatch(r'ADODB.Recordset')
try:
cnn.Open(self.connect_str)
except Exception,ex:
self.error_str = u"库连接失败,%s " % ex
return False

cmd.ActiveConnection = cnn
cmd.CommandType = 1 #call CmdText
cmd.CommandText = command_str

try:
ret = cmd.execute()
return ret.fetchall()---提示说没有fetchall这个函数
except Exception,ex:
self.error_str = u"SQL语句执行失败,%s " % ex
return False
...全文
308 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
angel_su 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 sfasssfass 的回复:]
能给个具体的例子吗?
[/Quote]
照你的去掉异常语句,大概像:
...
conn = adodbapi.connect(connect_str)
curs = conn.cursor()
curs.execute(command_str)
return curs.fetchall()
...

我装有sql2005express,系统用户连接方式,假设表aa在数据库test里,connect_str会像是:
"Provider=SQLOLEDB;Data Source=.\\SQLEXPRESS;Initial Catalog=test;Integrated Security=SSPI"
sfasssfass 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 angel_su 的回复:]
没啥特别复杂的话,用adodbapi容易写吧,语法按Python DB-API 2.0规范实现,且这样一些简单的应用,即使改用其它数据库,只要脚本替代模块名改下连接参数就照跑了...
[/Quote]
能给个具体的例子吗?
sfasssfass 2010-10-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 iambic 的回复:]
自己把ret和dir(ret)打印出来看看。这是遇到对象方法找不到这种问题的最基本的debug方式。
[/Quote]
[Dbg]>>> print ret
<COMObject <unknown>>
[Dbg]>>> print dir(ret)
['_ApplyTypes_', '_FlagAsMethod', '_LazyAddAttr_', '_NewEnum', '_Release_', '__AttrToID__', '__LazyMap__', '__call__', '__cmp__', '__doc__', '__getattr__', '__getitem__', '__init__', '__int__', '__len__', '__module__', '__nonzero__', '__repr__', '__setattr__', '__setitem__', '__str__', '_builtMethods_', '_enum_', '_find_dispatch_type_', '_get_good_object_', '_get_good_single_object_', '_lazydata_', '_make_method_', '_mapCachedItems_', '_oleobj_', '_olerepr_', '_print_details_', '_proc_', '_unicode_to_string_', '_username_', '_wrap_dispatch_']
[Dbg]>>>
angel_su 2010-10-13
  • 打赏
  • 举报
回复
没啥特别复杂的话,用adodbapi容易写吧,语法按Python DB-API 2.0规范实现,且这样一些简单的应用,即使改用其它数据库,只要脚本替代模块名改下连接参数就照跑了...
sfasssfass 2010-10-13
  • 打赏
  • 举报
回复
谢谢各位了
iambic 2010-10-12
  • 打赏
  • 举报
回复
自己把ret和dir(ret)打印出来看看。这是遇到对象方法找不到这种问题的最基本的debug方式。

37,721

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧