В моем приложении Delphi 7 можно построить подключения к серверу sql и сохранить строки подключения в файле конфигурации.
Это всегда работало без каких-либо проблем уже много лет.PromptDataSource в Delphi 7 дает разные результаты, которые он сделал до
Код для построения строки соединения заключается в следующем:
procedure TDataModuleMain.GetADOProviderString;
var
ConnectionString : string;
begin
ConnectionString := PromptDataSource(Application.MainForm.Handle, cdsConnectionsADOConnectionString.AsString);
if ConnectionString <> cdsConnectionsADOConnectionString.AsString then
begin
if not (cdsConnectionsADO.State in [dsEdit, dsInsert]) then
cdsConnectionsADO.Edit;
cdsConnectionsADOConnectionString.AsString := ConnectionString;
end;
end;
PromptDataSource является функцией от ADODB.pas и она воспитывает Microsoft datalink property window
и после настройки соединения ConnectionString возвращается.
В прошлом мне удалось снять отметку Blank password
и проверить Allow saving password
, а пароль и security info=true
присутствовали в возвращаемом соединении.
Но это изменилось некоторое время назад, не уверен, когда. Функция теперь никогда не возвращает пароль и больше не содержит информацию о безопасности = true. В результате эти флажки всегда возвращаются назад, и пароль всегда пуст, как на этом скриншоте:
Я подозреваю, что некоторые обновления для Windows сделали это для меня, или это может быть что-то еще?
Я надеюсь, что кто-то столкнулся с этим и имеет решение для этого.
EDIT 1
Это возникает проблема возникает только тогда, когда я выбираю SQL Server Native Client 11.0
в качестве поставщика. Когда я выбираю Microsoft OLE DB Provider for SQL Server
, проблем нет, и все работает нормально.
Есть ли способ заставить Собственного клиента вести себя и вернуть желаемую строку соединения? ОС я тестирование на это для Windows 8.1
EDIT 2
Я попытался установить данные свойства настойчивой безопасности = True, как предложено в комментариях, но опять-таки это получает вернулось при использовании собственного клиента, но не при использовании клиент OLE DB
EDIT 3
Я попробовал его, сделав текстовый файл с расширением .udl и двойным щелчком мыши, как это было предложено в комментариях. Результат тот же, он работает для поставщика OLE DB, но не для собственного клиента.
Я думаю, что ваш д отсутствует несколько пунктов, а именно, какая операционная система и какие ADO провайдера вы пользуетесь? – MartynA
@MartynA Я добавил провайдера и ОС в свой вопрос. – GuidoG
https://msdn.microsoft.com/en-us/library/ms130978.aspx – Sami