Sqlite строка подключения в Perl - PullRequest
0 голосов
/ 04 февраля 2019

Я использую приведенную ниже строку подключения sqlite в perl для подключения к базе данных sqlite и получаю следующее сообщение об ошибке

Невозможно установить DBI :: db = HASH (0x2c34194) -> {PRAGMA journal_mode}:нераспознанное имя атрибута или неверное значение

my $driver   = "SQLite"; 
my $database = "C:\\Sample\\Sample_Sqlite\\Activities.db3;PRAGMA journal_mode=WAL;";

my $dsn = "DBI:$driver:dbname=$database";
print $dsn;
my $dbh = DBI->connect(          
    $dsn,                          
    { RaiseError => 1 },         
) or die $DBI::errstr;

1 Ответ

0 голосов
/ 04 февраля 2019

Чтение раздела о PRAGMA в документации DBD :: SQLite , похоже, вы устанавливаете PRAGMA в неправильное время.Он не должен быть частью строки подключения, а должен быть командой SQL, которая запускается после подключения.

my $driver   = "SQLite"; 
my $database = "C:\\Sample\\Sample_Sqlite\\Activities.db3";

my $dsn = "DBI:$driver:dbname=$database";
print $dsn;
my $dbh = DBI->connect(          
    $dsn,                          
    { RaiseError => 1 },         
) or die $DBI::errstr;

$dbh->do('PRAGMA journal_mode=WAL');

Обновление: Вероятно, также стоит отметить, что journal_modeнастройка постоянна.Так что вам нужно установить его только один раз, и тогда вы сможете полностью удалить его из кода подключения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...