Я знаю, что этот вопрос древний, но, вероятно, он возникает достаточно часто, и я поделюсь ответом, который знаю. Самый простой способ добиться того, что вы пытаетесь сделать, - создать так называемое «соединение без DSN».
Вкратце, вы создаете строку соединения, которую вы используете при открытии соединения, которая идентифицирует драйвер и включает в себя все параметры, которые вы обычно вводите при создании DSN для этого драйвера.
Этот метод существует очень давно - я использовал его в 2001 году, и он старше этого.
Вот серия примеров строк подключения DSN-Less для доступа к данным SAS через ODBC:
Использование идентификатора сервера
Provider=sas.ShareProvider;Data Source=shr1;
SAS / SHARE
Использование идентификатора сервера и узла (имя сети)
Provider = sas.ShareProvider; Источник данных = shr1; Местоположение = lambchop.unx.sas.com;
SAS / SHARE
Указание пользователя и пароля
Provider=sas.ShareProvider;Data Source=shr1;Location=lambchop.unx.sas.com;
User ID=myUsername;Password=myPassword;
SAS / SHARE
Сервер требует пароль
Provider=sas.ShareProvider;Data Source=shr1;Location=lambchop.unx.sas.com;
User ID=myUsername;Password=myPassword;
SAS Server Access Password=myServerPassword;
Это из:
https://www.connectionstrings.com/sas-share/
Страница поддержки SAS обсуждает это больше - я нашел это здесь:
http://docslide.us/documents/opening-an-ado-connection-object.html