当前位置:  开发笔记 > 编程语言 > 正文

为什么回滚方法不适用于DBI句柄?

如何解决《为什么回滚方法不适用于DBI句柄?》经验,为你挑选了1个好方法。

出于某种原因,我遇到了DBI句柄的麻烦.基本上发生的事情是我在perl模块中创建了一个特殊的连接函数并从执行切换:

do 'foo.pl'

use Foo;

然后我做

$dbh = Foo->connect;

现在由于某种原因我不断收到错误:

无法通过../Foo.pm第171行的包"Foo"找到对象方法"回滚".

所以奇怪的是$ dbh绝对不是Foo,它只是在foo中定义的.无论如何,到目前为止我还没有遇到任何麻烦.有什么想法吗?

编辑:@Axeman:connect原来不存在.在我们使用之前我们使用的字符串之前:

do 'foo.pl';
$dbh = DBI->connect($DBConnectString);

这样connect的事情就是这样的

sub connect {
    my $dbh = DBI->connect('blah');
    return $dbh;
}

Ovid.. 7

我们需要看到Foo中的实际代码能够回答这个问题.您可能希望阅读文档中的DBI子类,以了解如何正确执行此操作.

基本上,你需要Foo正确地继承DBI(再次,你需要阅读文档),或者你需要声明一个connect函数来正确委托给DBI :: connect方法.但要注意为OO代码编写一个产品包装器.以这种方式维持状态变得非常困难.



1> Ovid..:

我们需要看到Foo中的实际代码能够回答这个问题.您可能希望阅读文档中的DBI子类,以了解如何正确执行此操作.

基本上,你需要Foo正确地继承DBI(再次,你需要阅读文档),或者你需要声明一个connect函数来正确委托给DBI :: connect方法.但要注意为OO代码编写一个产品包装器.以这种方式维持状态变得非常困难.

推荐阅读
yzh148448
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有