Форум программистов, компьютерный форум, киберфорум
C#: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
1 / 1 / 0
Регистрация: 22.08.2015
Сообщений: 18
Другое

ADS Подключение к Advantage Database Server

19.08.2019, 17:30. Показов 2264. Ответов 1
Метки ads (Все метки)

Студворк — интернет-сервис помощи студентам
Приветствую!
Пишу консольную программку на C# c .NET core для получения выгрузки из БД и столкнулся с такой задачкой:
При конекте к БД выпадают ошибки:

1) System.BadImageFormatException: "Была сделана попытка загрузить программу, имеющую неверный формат. (Exception from HRESULT: 0x8007000B)"

2)Advantage.Data.Provider.AdsConnection Unhandled Exception: Cannot print exception string because Exception.ToString() failed.
C:\Program Files\dotnet\dotnet.exe (процесс 12380) завершает работу с кодом -532462766.
Чтобы закрыть это окно, нажмите любую клавишу:


3)Ранее, еще была такая ошибка, требует зачем-то файл ace32.dll - в моем случае это файл для работы с БД в Advantage Data Architect. Но сама база работает, сервер тоже. Проблема явно в коде, м.б. в строке подключения или в правах.
Всякие фаерволы, антивирусы и прочие локеры в ауте!


Запускал и под 64х и 86х (под 86х вообще проводник сообщает ,что программа завершает свою работу).
В момент отладки, проблема выскакивает после перехода к (conn.open()).


Задачка в целом тривиальна для MySQL, SQLServer и тд, но вот с Саповским SQL сервером прям ППЦ. Инфу по подключению с горем пополам нашел, хоть и исчерпывающую, а вот инфы по решением проблем с подключением за 5 суток так и не нашел.

Буду рад любой ссылочке по теме, спасибо!

Подобные примеры подключения видел здесь:


Исходник:
Кликните здесь для просмотра всего текста

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
 static void Main(string[] args)
        {
            AdsConnection conn = new AdsConnection();
            conn.ConnectionString = "data source=C:\\SLIS\\OMSKbd\\LIS.add; " + "user id = adssys; password = 'labadmin'; " +"ServerType=REMOTE; TrimTrailingSpaces = true";
            // User ID=adssys;Password=labadmin;"ServerType=remote; TableType=ADT; 
            AdsCommand cmd;
 
            AdsDataReader reader;
 
            int iField;
 
            try
            {
                Console.WriteLine(conn.ToString());
                // make the connection to the server
                conn.Open();
 
                // create a command object
                cmd = conn.CreateCommand();
 
                // specify a simple SELECT statement
                cmd.CommandText = "select * from departments";
 
                // execute the statement and create a reader
                reader = cmd.ExecuteReader();
 
                // dump the results of the query to the console
                while (reader.Read())
                {
                    for (iField = 0; iField < reader.FieldCount; iField++)
                        Console.Write(reader.GetValue(iField) + " ");
                    Console.WriteLine();
                }
                conn.Close();
            }
            catch (AdsException e)
            {
                // print the exception message
                Console.WriteLine(e.Message);
            }
        }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.08.2019, 17:30
Ответы с готовыми решениями:

Соединение с sql server database 2012 через c#
Пишу код,не могу соединиться с БД(использую sql server2012) используя логин и пароль. Пользователи описаны на стороне сервера таким...

Создание сервера на основе SQL server database file
Здравствуйте, люди. У меня возникла проблема. Пишу первый проэкт с изпользованием SQL server и C#. Создал &quot;SQL server database...

Создать Local DataBase (SQL Server Compact Edition *.sdf) в MS VisualStudio 2015
Раньше в VS было создание Local DataBase, теперь работаю в VS2015 и не могу найти его. Если его нет то чем заменить? Нужна именно локальная...

1
1 / 1 / 0
Регистрация: 22.08.2015
Сообщений: 18
20.08.2019, 13:25  [ТС]
Проблему временно устранил переходом на консольное приложение С# на NET Framework вместо NET Core

Добавлено через 14 минут
Вот полный код приложения, если кому нибудь когда-нибудь понадобиться

Класс Main^
Кликните здесь для просмотра всего текста
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
54
using System;
using Advantage.Data.Provider;
 
namespace ConsoleApp2
{
    class Program
    {
        static void Main()
        {
            AdsCommand cmd;
            AdsDataReader reader;
            int iField;
            string Query = "select top 5 Examnumcode, Examstrcode from Exam";
            //string str="";
            Console.WriteLine("Getting Connection ...");
            AdsConnection conn = ConnectDBLogin.GetDBConnection();
 
            try
            {
                Console.WriteLine("Openning Connection ...");
                Console.WriteLine(conn.ToString());
 
                conn.Open();
                // create a command object
                cmd = conn.CreateCommand();
                // specify a simple SELECT statement
                cmd.CommandText = Query;
                // execute the statement and create a reader
                reader = cmd.ExecuteReader();
                // dump the results of the query to the console
                while (reader.Read())
                {
                    for (iField = 0; iField < reader.FieldCount; iField++) //Каждая запись из каждого поля БД парситься на новой строчке.
                    {
                       // str = str + "\n" + reader.GetValue(iField) + "\n"; для записи в строку. 
                        Console.Write(reader.GetValue(iField) + " ");
                    }
                    Console.WriteLine();
                }
 
                Console.WriteLine("Connection successful!");
                //Console.WriteLine(str);
                conn.Close();
            }
            catch (Exception e)
            {
                Console.WriteLine("Error: " + e.Message);
            }
 
            Console.Read();
 
        }
    }
}


Класс ConnectDBLogin - Инициализация переменных для инициализации строки подключения:
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data.Common;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using Advantage.Data.Provider;
 
 
namespace ConsoleApp2
{ 
    public class ConnectDBLogin
    {
        public static AdsConnection GetDBConnection()
        {
            string datasource = "C:\\SLIS\\BD_OMSK\\LIS.add";
            string servertype = "remote";
            string tabletype = "ADT";
            string securitymode = "ignorerights";
 
            string database = "LIS-OMSK";
            string username = "adssys";
            string password = "labadmin";
 
            return ConnectDB.GetDBConnection(datasource, servertype, tabletype, username, password, securitymode, database);
        }
    }
}


Класс ConnectDB - Инициализация строки подключения:
Кликните здесь для просмотра всего текста
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
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data.Common;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using Advantage.Data.Provider;
 
 
 
namespace ConsoleApp2
{
    public class ConnectDB
    {
        public static AdsConnection
             GetDBConnection(string datasource, string servertype, string tabletype, string username, string password, string securitymode, string database)
        {
            
            string connString = @"Data Source=" + datasource + ";ServerType=" + servertype + ";TableType=" + tabletype + "; User ID=" + username + "; Password=" + password
                + "; securitymode=" + securitymode + "; Initial Catalog=" + database + ";";
 
            AdsConnection conn = new AdsConnection(connString);          
            return conn;
        }
    }
}
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.08.2019, 13:25
Помогаю со студенческими работами здесь

Подключение к базам данных 1) Firebird, 2) Oracle database 11g 3) SQL SERVER 2008 R2
Всем доброго времени суток уважаемые форумчане! Не подскажите как написать приложение на с/c++ в системе Linux для работы с базой данных 1)...

Ошибка СУБД: Microsoft OLE Provider for SQL Server: The transaction log for database “DataBase” is full.
Иногда при работе 1С возникает ошибка следующего характера: Ошибка СУБД: Microsoft OLE Provider for SQL Server: The transaction...

Помогите поднять клиента: Unable to connect to database server: unable to start database engine
Есть сервре Sybase SQL Anywhere 5.0 к нему настроен драйвер ODBC с помощью которого поднимается db клиент? который подключается к базе. ...

Подключиться к SQL 2000. BASE_STRING = 'Driver={SQL Server};Server=(local);Database=mybase;
Пишу поключение BASE_STRING = 'Driver={SQL Server};Server=(local);Database=mybase;', тестирую соединение в редакторе (Ultradev), все...

SQLite DataBase - почему подчеркивает DataBase db: пишет (DataBase cannot be resolved to a type)
Здравствуйте! помогите понять почему подчеркивает DataBase db; пишет (DataBase cannot be resolved to a type), чем это можно исправить ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru