2013-08-07 12 views
0

я получил список DSN в моей машине, такКак получить тип драйвера DSN?

private IEnumerable<string> EnumDsn(Microsoft.Win32.RegistryKey rootKey) 
{ 
    Microsoft.Win32.RegistryKey regKey = rootKey.OpenSubKey(@"Software\ODBC\ODBC.INI\ODBC Data Sources"); 
    if (regKey != null) 
    { 
     foreach (string name in regKey.GetValueNames()) 
     { 
      string value = regKey.GetValue(name, "").ToString(); 
      yield return name; 
     } 
    } 
} 

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

ответ

0

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

Использовать "ODBC Data Sources" как аргумент lpszSection и имя источника данных (DSN) в качестве аргумента lpszEntry. Значение, возвращаемое в буфер, будет вашим именем драйвера.

Импорт 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 

 Смежные вопросы

  • Нет связанных вопросов^_^