|
|
ru.cgi.perl- RU.CGI.PERL ------------------------------------------------------------------ From : Artem Chuprina 2:5020/371.32 10 Aug 2001 11:09:37 To : Eugeny Goltsov Subject : Re: Требуется консультация... -------------------------------------------------------------------------------- EG>>> Вообще-то $sth->finish(); должно делается после завершения любой EG>>> операции с $sth (например prepare и т.д.). В таком случае можно IS>> Откуда информация? В perldoc DBI сказано что явный вызов finish IS>> используется крайне редко -- только в специальных случаях: EG> Это также тривиально как закрывать правую скобку ")" после левой "(" EG> Тем не менее следует почитать не perldoc, а документацию на mySQL. EG> Там про это написано. IS>> Если finish связан лишь с fetch, то непонятно на кой лад его IS>> делать после prepare? EG> Приведу пример: EG> $sth=$dbh->prepare('select * from name_db'); EG> $sth->execute; EG> $numrow=$sth->rows; EG> @row=$sth->fetch_array; EG> ... EG> любые операции с $sth EG> ... EG> $sth->finish; EG> Hа самом деле можно не финишировать сессию, но после остается определенной EG> величиной (defined) $sth, а представь, что создаю новый процесс, он у меня EG> завершается с ошибкой, начинаем работать с $sth, и как думаешь, что в этом EG> случае будет? Все пройдет гладко при неопределенной величине $sth, что EG> можно добиться только при finish. Давайте только не путать $sth с $dbh... Все вышесказанное относится скорее к $dbh, а к $sth лишь постольку поскольку по закрытии сессии DBI ругается про неявно прибитые statement handler'ы, если им заблаговременно не было сказано finish. $sth, в отличие от $dbh - чисто перловая структура, к соединению с базой данных напрямую отношения не имеющая. -- Artem Chuprina <ran@ran.pp.ru> FIDO: 2:5020/371.32 --- slrn/0.9.7.0 (Linux) * Origin: AKA с подствольным плюсомётом (2:5020/371.32) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.cgi.perl/7140289fb135d.html, оценка из 5, голосов 10
|