получить информацию от / о ODBC DSN - PullRequest
0 голосов
/ 11 февраля 2010

Есть ли способ получить информацию из источника данных Odbc, когда вы знаете имя DSN?

пример, получить идентификатор пользователя и т. Д.

Мне нужно открыть соединение с некоторым источником данных и выполнить какую-то команду. Единственное, что я знаю, это имя источника данных (определено в ODBC Data Source Administrator) и текст команды.

Теперь, если мне понадобится дополнительная информация об этом источнике данных, есть ли способ получить эту информацию программно? Может быть, класс, который представляет источник данных ODBC?

ткс

Ответы [ 3 ]

0 голосов
/ 11 февраля 2010

Существует целый C API для поддержки ODBC . Другие языки (и вы не говорите, какой из них вы используете) предоставляют обертки вокруг этого. Учитывая только имя источника данных, вы можете иметь возможность доступа к данным, к которым он относится - это зависит от того, как он был настроен.

0 голосов
/ 15 января 2014

Вы можете вызвать SQLGetPrivateProfileString Функция из odbccp32.dll, чтобы получить информацию, которую вы ищете.

Импорт DLL и функции в C # выглядит следующим образом:

    [DllImport("odbccp32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
    private static extern int SQLGetPrivateProfileStringW(string lpszSection, string lpszEntry, string lpszDefault, char[] RetBuffer, int cbRetBuffer, string lpszFilename);

Это выглядит так в VB.NET:

    <DllImport("odbccp32.dll", SetLastError:=True, CharSet:=CharSet.Unicode)> _
    Private Shared Function SQLGetPrivateProfileStringW(lpszSection As String, lpszEntry As String, RetBuffer As Char(), cbRetBuffer As Integer, lpszFilename As String) As Integer
0 голосов
/ 11 февраля 2010

Я согласен с комментарием мистера Баттерворта, в котором я не совсем уверен, что вы спрашиваете, но вы можете найти некоторую информацию в реестре в:

HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI\{DSN Name}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...