The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  помощь  поиск  регистрация  майллист  ВХОД  слежка  RSS
"help по ООП на перле"
Вариант для распечатки  
Пред. тема | След. тема 
Форумы Программирование под UNIX (Public)
Изначальное сообщение [Проследить за развитием треда]

"help по ООП на перле" 
Сообщение от thirteensmay Искать по авторуВ закладки on 02-Апр-05, 19:50  (MSK)
Уважаемые подскажите пожайлуста !
Есть вот такой конструктор "объекта":
sub new
{
  my $self = {};
  $self{dsn} = "DBI:$DBType:$DBName;$DBHost";
  $self{dbh} = DBI->connect($self{dsn}, $DBLogin, $DBPassword) || print $DBI::errstr;
  $self{sth} = undef;
  $self{res} = undef;
  bless($self);
  return $self;
}
ну и методы ессно...
Пользую например так:
  $conn = MyDBI->new(...);
  $conn->query("select value from setup where name='$_[0]'");
  $conn->rowpresent();
  $result = $conn->rowfield('value');
  $conn->freeresult();
  $conn->destroy();
Так вот, до тех пор пока такой "объект" у меня один - все оk,
но стоит сделать хотябы два чтобы они перекрывались,
например так:
  $conn = MyDBI->new(...);
    $conn2 = MyDBI->new(...);
    ...
    $conn2->destroy();
  $conn->query("select value from setup where name='$_[0]'");
  ...
то после выполнения $conn2->destroy();
падает и $conn тоже, я так понимаю они "не совсем разделяются",
т.е. совсем не разделяются, хотя bless($self); вроде есть.
На перле пишу недавно, с ООП уже все мозги протер,
подскажите где у меня тут косяк, как их разделить ?
  Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

 Оглавление

Индекс форумов | Темы | Пред. тема | След. тема
Сообщения по теме

1. "help по ООП на перле" 
Сообщение от rWizard emailИскать по авторуВ закладки(??) on 04-Апр-05, 22:01  (MSK)
может стоит попробовать сначала
bless, а потом
$self->{DBI} = DBI->connect(...)
  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх

2. "help по ООП на перле" 
Сообщение от ACCA Искать по авторуВ закладки(ok) on 05-Апр-05, 03:21  (MSK)
Включен ли у тебя в модуле use strict?

>  $self{dsn} = "DBI:$DBType:$DBName;$DBHost";

и $self{'dsn'} - совсем разные вещи.

  Удалить Правка | Высказать мнение | Ответить | Рекомендовать в FAQ | Cообщить модератору | Наверх


Архив | Удалить

Индекс форумов | Темы | Пред. тема | След. тема
Пожалуйста, прежде чем написать сообщение, ознакомьтесь с данными рекомендациями.




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру