免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4121 | 回复: 9
打印 上一主题 下一主题

python 对informix数据库进行操作的时候,select语句如何最优得到返回的行数 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2010-05-31 10:40 |只看该作者 |倒序浏览
Cursor attributes
rowcount
Number of rows affected by the last executed statement, or -1 if no statement was executed or the number can not be determined. InformixDB only provides values for DELETE, UPDATE, and INSERT statements.

好像没有直接的
这个必须遍历一遍结果,++一个变量得到吗

论坛徽章:
0
2 [报告]
发表于 2010-05-31 10:49 |只看该作者
  1. from adodbapi import *   
  2.   
  3. a = connect(r"Dsn=dsn;Database=remotedb;UID=username;PWD=password")   
  4. b = a.cursor()   
  5. b.execute("select count(*) as count from tb1;")   
  6. print b.fetchone()   
  7. a.close()  
复制代码
我没有使用过informix数据库,难道这样没有输出值么?

论坛徽章:
0
3 [报告]
发表于 2010-05-31 11:07 |只看该作者
我没有使用过informix数据库,难道这样没有输出值么?
t6760915 发表于 2010-05-31 10:49



    灰常有道理啊,不过这样sql句子就要执行两次了,一次取count一次取内容

论坛徽章:
0
4 [报告]
发表于 2010-05-31 11:08 |只看该作者
另外再问个问题:

cursor_connect.execute('select * from tabnamex')
for i in cursor_connect:
        print i[0]
for i in cursor_connect:
        print i[0]
为啥不能这样搞两次啊,第一次遍历后好像就空了。。。

论坛徽章:
0
5 [报告]
发表于 2010-05-31 11:10 |只看该作者
本帖最后由 luffy.deng 于 2010-05-31 11:15 编辑

晕   原来是update

论坛徽章:
0
6 [报告]
发表于 2010-05-31 11:18 |只看该作者
select 的话  len(fetchall())可以

论坛徽章:
0
7 [报告]
发表于 2010-05-31 11:24 |只看该作者
灰常有道理啊,不过这样sql句子就要执行两次了,一次取count一次取内容
ksding 发表于 2010-05-31 11:07



    第一次听说有这样的情况,我out了,我查查去

论坛徽章:
0
8 [报告]
发表于 2010-05-31 11:29 |只看该作者
另外再问个问题:

cursor_connect.execute('select * from tabnamex')
for i in cursor_connect:
        pri ...
ksding 发表于 2010-05-31 11:08

cursor_connect不是一个列表。比如:
  1.    
  2. it = iter('abc')
  3. for i in it:
  4.     print i,
  5.    
  6. for a  in it:
  7.     print a,
复制代码

论坛徽章:
0
9 [报告]
发表于 2010-05-31 11:40 |只看该作者
cursor_connect不是一个列表。比如:
luffy.deng 发表于 2010-05-31 11:29



    是的,for循环遍历或者fetchall后就空了。。。。
   现在是sql执行后就把取出的东西存到list里这样搞了

论坛徽章:
0
10 [报告]
发表于 2010-05-31 11:43 |只看该作者
是的,for循环遍历或者fetchall后就空了。。。。
   现在是sql执行后就把取出的东西存到list里这 ...
ksding 发表于 2010-05-31 11:40

不需要。  res =cursor.fetchall()就得到一个list。  select 返回 的行数不想执行两个sql的话可以len(res)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP