Гость
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / SAP ASA 17 - подключение по ODBC без DSN / 5 сообщений из 5, страница 1 из 1
13.04.2016, 01:03
    #39214180
Dark Elf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAP ASA 17 - подключение по ODBC без DSN
Добрый день

Раньше обходился OLE DB или .NET провайдером но поскольку портирую свою программу под Unix то из опций для Mono остаётся только ODBC.

Во вложении моя строка подключения и ошибка возникающая при попытке подключения.

Не подскажете ли случайно как мне исправить строку подключения чтобы соединение с БД всё-таки заработало?

Заранее спасибо.
...
Рейтинг: 0 / 0
13.04.2016, 01:49
    #39214188
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAP ASA 17 - подключение по ODBC без DSN
Ошибся в имени драйвера или забыл его проинсталлировать.
...
Рейтинг: 0 / 0
13.04.2016, 02:11
    #39214191
Dark Elf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAP ASA 17 - подключение по ODBC без DSN
Спасибо за ответ. Не ошибся и не забыл. Моя программа берёт данные об инсталированных драйверах из реестра те же ADO.NET и OLE DB драйвера отлично работают, да и ODBC драйвер работает если подключаться по DSN но мне надо как-то без него обойтись.

Код получения списка драйверов
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
        /// <summary>
        /// Gets all ODBC drivers for the local machine.
        /// </summary>
        public static IEnumerable<string> GetOdbcDrivers()
        {
            IEnumerable<string> list = null;
            PlatformID platform = Environment.OSVersion.Platform;
            string userName = Environment.UserName;
            if (platform == PlatformID.Win32NT)
            {
                Microsoft.Win32.RegistryKey reg = Microsoft.Win32.Registry.LocalMachine.OpenSubKey("Software");
                if (reg != null)
                {
                    reg = reg.OpenSubKey("ODBC");
                    if (reg != null)
                    {
                        reg = reg.OpenSubKey("ODBCINST.INI");
                        if (reg != null)
                        {
                            reg = reg.OpenSubKey("ODBC Drivers");
                            if (reg != null)
                            {
                                list = reg.GetValueNames().Where(sName => !sName.Contains("(*.") && !sName.ToLower().Contains("foxpro"));
                            }
                            reg.Close();
                        }
                    }
                }
            }
            else if ((platform == PlatformID.Unix && Environment.OSVersion.Version.Major >= 8)
                    || platform == PlatformID.MacOSX)
            {
                list = LoadUnixDrivers("/Library/ODBC/odbcinst.ini").Concat(LoadUnixDrivers($"/Users/{userName}/odbcinst.ini")).Distinct();
            }
            else if (platform == PlatformID.Unix && Environment.OSVersion.Version.Major <= 4)
            {
                list = LoadUnixDrivers("/etc/odbcinst.ini").Concat(LoadUnixDrivers($"/home/{userName}/.odbcinst.ini")).Distinct();
            }
            return list;
        }

        private static IEnumerable<string> LoadUnixDrivers(string fileName)
        {
            const string separator = "= Installed";
            if (File.Exists(fileName))
            {
                string[] strings = File.ReadAllLines(fileName);
                return from str in strings
                              where str.Contains(separator)
                              select str.Substring(0, str.IndexOf(separator, StringComparison.OrdinalIgnoreCase)).Trim();
            }
            return null;
        }

...
Рейтинг: 0 / 0
13.04.2016, 18:06
    #39215010
White Owl
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAP ASA 17 - подключение по ODBC без DSN
Dark ElfСпасибо за ответ. Не ошибся и не забыл. Моя программа берёт данные об инсталированных драйверах из реестраЗначит берет неправильно.
Правильно надо брать через SQLDrivers()

Dark ElfODBC драйвер работает если подключаться по DSN но мне надо как-то без него обойтись.
SQLDriverConnect(hdbc, NULL, "DRIVER={name of the driver};param1=value;param2=value", ....);
https://msdn.microsoft.com/en-us/library/ms715433(v=vs.85).aspx
...
Рейтинг: 0 / 0
14.04.2016, 06:53
    #39215194
Dark Elf
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
SAP ASA 17 - подключение по ODBC без DSN
Спасибо всем за ответы

Вот рабочая строка подключения:

Driver={SQL Anywhere 17};LINKS=TCPIP{HOST=localhost};ENG=demo17;DBN=demo;uid=DBA;pwd=sql
...
Рейтинг: 0 / 0
Форумы / Sybase ASA, ASE, IQ [игнор отключен] [закрыт для гостей] / SAP ASA 17 - подключение по ODBC без DSN / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]