Командная строка ТUniConnection

Обсуждение возникших проблем, предложений и ошибок UniDAC компонентов
Ответить
kaldirishe
Сообщения: 5
Зарегистрирован: Ср 13 дек 2017 10:06

Командная строка ТUniConnection

Сообщение kaldirishe » Чт 11 янв 2018 17:04

Добрый вечер!
Изучаю версию 7.0.1 с точки зрения возможного ухода от ADO и MSSQL и переходу на MySQL и UniDAC. Столкнулся с "неудобным" моментом. Попробуйте присвоить командной строке что нибудь типа "Provider Name=MySQL;User ID=user;Password=password;Data Source=hosting.ru;Database=database;Port=3306;Authentication=Server", а теперь присвойте какой нить переменной командную строку и посмотрите ее... Аутоинтефикации не будет.
Как я понимаю, по умолчанию, она Windows и соответственно логин и пароль не нужны. Т.е. если теперь присвоить командной строке переменную - аутоинтефикации будет Windows. Подключаясь посредством "TUniConnectionEditorForm.Create(nil, TUniDesignUtils)" будет возможно заново выбрать аутоинтефикацию и ввести логин и пароль (они скидываются и поля не доступны), но если подключать в "лоб", диалог другой, закладка с настройкой аутоинтефикации отсутствует.
Собственно я о чем, я использую файлы конфигурации для хранения, в том числе командной строки, которая, по завершении приложения, формируется на основании командной строки ТUniConnection последнего успешного соединения. Без дописи в файл конфигурации в командную строку "Authentication=Server" "ручками", при следующем запуске, без использования TUniConnectionEditorForm, подключиться не возможно.
У меня реализован механизм, когда при отсутствии файла конфигурации вызывается расширенный диалог, перед следующим запуском приложения приходится его грохать :)

ViktorV
Devart Team
Сообщения: 199
Зарегистрирован: Чт 31 июл 2014 09:52

Re: Командная строка ТUniConnection

Сообщение ViktorV » Чт 11 янв 2018 17:46

При использовании MySQL провайдера параметр Authentication не поддерживается, он поддерживается для SQL Server провайдера. Поэтому, для решения вашей задачи, вам следует указывать в ConnectionString параметры User и Password.
В последней версии UniDAC 7.1.4, при попытке использовать параметр Authentication для MySQL провайдера вы получите ошибку "Connection parameter name is unknown".

kaldirishe
Сообщения: 5
Зарегистрирован: Ср 13 дек 2017 10:06

Re: Командная строка ТUniConnection

Сообщение kaldirishe » Чт 11 янв 2018 19:19

Уфф, некоректно написал( Весь текст про MSSQL и в командной строке конечно же "Provider Name=SQL Server". MySQL только там, где про слезть с ADO

Stellar
Devart Team
Сообщения: 15
Зарегистрирован: Чт 07 дек 2017 14:56

Re: Командная строка ТUniConnection

Сообщение Stellar » Вт 16 янв 2018 10:38

Для провайдера SQL Server значение специфической опции 'Authentication' по умолчанию равняется 'auServer', то есть аутентификация будет выполнена по логину и паролю. Для корректного восстановления значений параметров подключения, попробуйте очистить значения всех специфичных опций до присвоения строки соединения. Для этого вызовите метод TUniConnection.SpecificOptions.Clear. Пример установки строки соединения:

UniConnection1.SpecificOptions.Clear;
UniConnection1.ConnectString := ConnectionString;

Ответить