perl 5.8.7 + DBD::Sybase 1.00 + freetds 0.63 и всё это в MS SQL 2000
"SELECT count(*) from SOMETABLE WHERE PARENT_ID = 2"
работает и выдает правильный результат.
В инструкции написано:
DBD::Sybase supports the use of ? placeholders in SQL statements as long as the underlying library and
database engine supports it.
Ещё конкретнее
syb_dynamic_supported (bool)
This is a read-only attribute that returns TRUE if the dataserver you are connected to supports
?-style placeholders. Typically placeholders are not supported when using DBD::Sybase to connect
to a MS-SQL server.
вот он после коннекта равен 1.
Но конструкция
$sth = $dbh->prepare("SELECT count(*) from SOMETABLE WHERE PARENT_ID = ?");
вылетает с сообщением
ct_send(CS_DESCRIBE_INPUT) returned 0 at /usr/lib/perl5/DBD/Sybase.pm line 124.
Segmentation fault
еще на этапе prepare, до execute дело не доходит.
В 124 строке вышеупомянутого файла написано:
DBD::Sybase::st::_prepare($sth, $statement, @attribs)
or return undef;
Вопрос: это я что-то неправильно делаю, или оно таки не поддерживается сервером или freetds'ом?
Очень уж не хочется вручную все входные данные проверять и префиксировать, хочется идеологически правльное решение использовать.
"SELECT count(*) from SOMETABLE WHERE PARENT_ID = 2"
работает и выдает правильный результат.
В инструкции написано:
DBD::Sybase supports the use of ? placeholders in SQL statements as long as the underlying library and
database engine supports it.
Ещё конкретнее
syb_dynamic_supported (bool)
This is a read-only attribute that returns TRUE if the dataserver you are connected to supports
?-style placeholders. Typically placeholders are not supported when using DBD::Sybase to connect
to a MS-SQL server.
вот он после коннекта равен 1.
Но конструкция
$sth = $dbh->prepare("SELECT count(*) from SOMETABLE WHERE PARENT_ID = ?");
вылетает с сообщением
ct_send(CS_DESCRIBE_INPUT) returned 0 at /usr/lib/perl5/DBD/Sybase.pm line 124.
Segmentation fault
еще на этапе prepare, до execute дело не доходит.
В 124 строке вышеупомянутого файла написано:
DBD::Sybase::st::_prepare($sth, $statement, @attribs)
or return undef;
Вопрос: это я что-то неправильно делаю, или оно таки не поддерживается сервером или freetds'ом?
Очень уж не хочется вручную все входные данные проверять и префиксировать, хочется идеологически правльное решение использовать.
no subject
no subject