Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Perl: Странности работы с Sqlite3

27K
11 мая 2008 года
DoktorPZ
5 / / 11.07.2007
Столкнулся с проблемой, если я прерываю работу скрипта при помощи Ctrl+C во время выполнения например 101 UPDATE в БД, то результат предыдущих 100 UPDATE запросов не сохраняется в БД.

Вот пример кода:

Код:
#!/usr/bin/perl -w

use strict;
use warnings;
use Data::Dumper;
use diagnostics;

use DBI;

my $dbh = DBI->connect("dbi:SQLite:dbname=test.db","","", {PrintError=>1,AutoCommit=>1,RaiseError=>1});
my $sth = $dbh->prepare("SELECT id,rls_name,rls_type FROM rls_list WHERE pub=0");
my $rv = $sth->execute;
while ( my @row = $sth->fetchrow_array )        {
        my $sth2 = $dbh->prepare("UPDATE rls_list SET pub=1 where id=".$row[0]."");
        my $rv2 = $sth2->execute;
                 }
$sth->finish();
$dbh->disconnect;
2
12 мая 2008 года
squirL
5.6K / / 13.08.2003
могу предположить, что проблема в незакрытом дескрипторе коннекта к базе. SQLite не коммитит вашу транзакцию, пока вы корректно не закроете коннект к БД.
кстати, а зачем вы используете finish? :)
39K
20 мая 2008 года
defg720
1 / / 19.05.2008
You write very well, support you!??? ?????? ??? ???
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог