Создание кэшированного претранслированного запроса (prepare_cached)

Назначение
 

Метод prepare_cached выполняет подготовку запроса к выполнению и сохраняет дескриптор подготовленного запроса (экземпляр класса Statement), ассоциированный с соединением, в кэше запросов. Если другой вызов метода prepare_cached выполняется с тем же исходным текстом запроса, то используется ранее подготовленный запрос из кэша и обращение к СУБД не осуществляется.

Пакет

Package Linter::db

Прототип
$sth = $dbh- >prepare_cached($statement);
$sth = $dbh- >prepare_cached($statement, \%attr, $if_active);
Параметр Описание
$statement  Текст SQL-запроса (возможно, с параметрами)
\%attr  Параметр игнорируется
$if_active  Управление поведением при наличии активного кэшированного экземпляра Statement:
  • 0 – генерирует предупреждение, вызывает метод finish перед возвращением экземпляра Statement (поведение по умолчанию);

  • 1 – вызывает метод finish, выдача предупреждения не осуществляется;

  • 2 – отключает любые проверки;

  • 3 – удаляет существующий экземпляр Statement из кэша и вставляет новый экземпляр на его место

Возвращаемые значения
Переменная Описание
$dbh  Ссылка на дескриптор кэша претранслированного запроса или undef при возникновении ошибки
$DBI::errstr Диагностическое сообщение (в случае ошибки выполнения метода)
Пример
my $dbh = $drh- >connect("DEMO", "SYSTEM", "MANAGER8")
        or die "Could not connect to database: " . DBI- >errstr;
my $sth = $dbh- >prepare_cached("insert into TEST_TABLE values (?, ?);");