Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как сохранить пароль в строке подключения для SQL Server Native Client 10.0 в Delphi

Delphi , Базы данных , ADO

При работе с базами данных в среде Delphi часто возникает необходимость сохранения параметров подключения, в том числе и паролей. Однако, при использовании провайдера SQL Server Native Client 10.0, может возникнуть проблема с сохранением пароля в строке подключения. В данной статье мы рассмотрим, как решить эту проблему.

Описание проблемы

Функция PromptDataSource в Delphi используется для настройки соединения с базой данных пользователем. Однако при использовании провайдера SQL Server Native Client 10.0 возникает проблема с сохранением пароля. При этом в возвращаемой строке подключения параметр Persist Security Info устанавливается в значение False, и пароль из строки исключается.

Пример строки подключения

Provider=SQNCLI10.1;Integrated Security="";Persist Security Info=False;User ID=MGH;Initial Catalog="";Data Source=stackoverflow.com;Initial File Name="";Server SPN=""

Возможное решение

Пользователь в комментариях предложил использовать интерфейс IBPromptInitialize для ограничения выбора провайдера только SQLOLEDB, что может быть workaround. Однако, для сохранения функциональности использования SQL Server Native Client, можно использовать следующий подход:

  1. После заполнения диалога данных, перейдите на последнюю вкладку "All" в свойствах диалога.
  2. Установите свойство "Extended properties" в значение, включающее параметр Trusted_Connection=no;Server=..........;Database=..... и установите Persist Security Info в значение True.
  3. Используйте следующий код на Object Pascal для обработки строки подключения после её генерации PromptDataSource:
ConnectionString := PromptDataSource(Application.Handle, ConnectionString);
if ContainsText(ConnectionString, 'SQLNCLI10') or ContainsText(ConnectionString, 'SQLNCLI11') then
begin
  ConnectionString := StringReplace(ConnectionString, 'Integrated Security=""', '', [rfReplaceAll, rfIgnoreCase]);
end;

Этот код уберет некорректный параметр Integrated Security для провайдера SQL Server Native Client.

Важное примечание

Обратите внимание, что некоторые пользователи сообщают, что Microsoft намеренно не исправляет эту проблему, и это может быть связано с политикой "сломано по умолчанию" компании.

Заключение

В данной статье мы рассмотрели проблему сохранения пароля в строке подключения для SQL Server Native Client 10.0 в Delphi и предложили возможное решение. Надеемся, что предоставленная информация окажется полезной для разработчиков, сталкивающихся с подобными проблемами.

Создано по материалам из источника по ссылке.

Как сохранить пароль в строке подключения для SQL Server Native Client 10.0 при работе с Delphi.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: ADO ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-03-13 20:45:47/0.0032079219818115/0