Вау! DBlib - это возвращает меня назад. Когда я в последний раз работал с DBlib (примерно в 1995 году), одна из задач в моем списке заключалась в замене всего использования DBlib на CTlib - новой технологии Sybase, предназначенной для замены DBlib. Вскоре после этого система была снова переписана для использования DBI и DBD :: Sybase - что было рекомендованным способом взаимодействия с базами данных Sybase из программ Perl на протяжении более двадцати лет. . Обратите внимание, что самый последний выпуск syb perl (который является дистрибутивом CPAN, содержащим Sybase :: DBlib и Sybase :: CTlib) был более десяти лет как go. Я почти уверен, что сама Sybase не поддерживает DBlib примерно с начала этого тысячелетия.
Итак, имея в виду, что вы используете древнюю технологию, которая в значительной степени мертва и не должна использоваться, можно ли что-нибудь сделать, чтобы помочь вам, не переписывая всю систему?
Возможно.
Глядя на документацию для Sybase :: DBlib , я вижу этот пример о том, как писать вызовы на new()
:
$dbh = new Sybase::DBlib [$user [, $pwd [, $server [, $appname [, {additional attributes}]]]]]
Игнорируйте тот факт, что он использует синтаксис new Class
, которого избегал бы любой рациональный программист - версия Class->new()
такова :
$dbh = Sybase::DBlib->new([$user [, $pwd [, $server [, $appname [, {additional attributes}]]]]])
Обратите внимание на поле «дополнительные атрибуты» в конце. Бьюсь об заклад, это то место, где нужно go. Также обратите внимание, что это { additional attributes }
- так что похоже, что он ожидает ссылку ha sh.
Таким образом, вероятно, что синтаксис, который вы хотите, следующий:
$conn = Sybase::DBlib->new($user, $pass, $server, "$dbase Handle", {
EncryptPassword => 1,
});
Примечание что в этом есть огромные оговорки. Не в последнюю очередь, учитывая, что Sybase :: DBlib не поддерживается в течение десяти лет, я бы не удивился, если бы он вообще не поддерживал зашифрованные пароли.
Но это может сработать. Вероятно, это ваша лучшая надежда.
И, пожалуйста, сделайте все, что в ваших силах, чтобы обновить кодовую базу, чтобы использовать инструменты и библиотеки, которые не поддерживались так долго.