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

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

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

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

Заранее спасибо.
...
Рейтинг: 0 / 0
SAP ASA 17 - подключение по ODBC без DSN
    #39214188
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ошибся в имени драйвера или забыл его проинсталлировать.
...
Рейтинг: 0 / 0
SAP ASA 17 - подключение по ODBC без DSN
    #39214191
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо за ответ. Не ошибся и не забыл. Моя программа берёт данные об инсталированных драйверах из реестра те же 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
SAP ASA 17 - подключение по ODBC без DSN
    #39215010
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
SAP ASA 17 - подключение по ODBC без DSN
    #39215194
Dark Elf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо всем за ответы

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

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


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