免费注册 查看新帖 |

Chinaunix

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

用DBI连接Ingres数据库,查询表结果为何只有一条? [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2007-06-15 14:38 |只看该作者 |倒序浏览
现在用perl写了一个用DBI模块连接Ingres数据库,但是查询出来的结果只有第一条,其他的都没有返回。请问为什么?
代码如下:

表AL_SEVERITY_STR 一共有7条记录,但是输出的只有第一条记录。
这段代码是根据CPAN上的修改的,
  1. #!/usr/bin/perl
  2. use DBI qw(:sql_types);


  3. $dbh = DBI->connect("DBI:Ingres:phms::dbname", "user","passwd", {AutoCommit=>0});

  4. $statement = "select * from AL_SEVERITY_STR ";

  5. $sth = $dbh->prepare($statement);
  6. $sth = $dbh->prepare($statement, {ing_readonly=>1});
  7. $sth->execute;


  8. while (@rows= $sth->fetchrow) {
  9.         print $rows[0]." ########## ".$rows[1]."\n";

  10.         }

  11. $sth->finish;
  12. $dbh->commit;
  13. $dbh->rollback;
  14. $dbh->disconnect;
复制代码

论坛徽章:
0
2 [报告]
发表于 2007-06-15 14:40 |只看该作者
在线等答案啊!!!!!
连接数据库的程序写多了,都是这样写的,但是不知道为什么这次只有第一条结果返回,其他的不知道哪里去了。
等待达人帮助!!!
谢谢!!!

论坛徽章:
0
3 [报告]
发表于 2007-06-15 15:37 |只看该作者
问什么看的人多,回复的人少啊????

论坛徽章:
1
荣誉会员
日期:2011-11-23 16:44:17
4 [报告]
发表于 2007-06-15 16:33 |只看该作者
请在每个

$sth = $dbh->prepare($statement);
$sth = $dbh->prepare($statement, {ing_readonly=>1});
$sth->execute;
加上 die $dbh->errstr;
另外试着看看有没有Error log产生
另外你在回圈中有没有其他的statement..
如果有看一下他的变量名称是不是叫$sth
我以前碰过一样的问题..後来发现是名称一样的原因..

[ 本帖最后由 apile 于 2007-6-15 16:36 编辑 ]

论坛徽章:
0
5 [报告]
发表于 2007-06-18 18:31 |只看该作者
原帖由 apile 于 2007-6-15 16:33 发表
请在每个

$sth = $dbh->prepare($statement);
$sth = $dbh->prepare($statement, {ing_readonly=>1});
$sth->execute;
加上 die $dbh->errstr;
另外试着看看有没有Error log产生
另外你在 ...


加上 die $dbh->errstr;以后也没有Error log产生,证明我的链接没有出错,
还有,我里面就一个$statement,上面贴出的代码就是我的程序全部内容,,所以也不肯能是因为有同名函数造成。
我的程序完全就是CPAN上的拿下来,改了所连接的数据库名和帐号密码
这个问题困扰了我很久了,不知那位高手能够给于下帮助啊,小弟在这里感谢万分!!!
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP