Проблемы с подключением ODBC: ошибка последовательности функций при выполнении чего-либо


Мне было поручено выполнить однократную миграцию из базы данных 4D в нашу структуру MSSQL. У меня есть источник данных, настроенный в Администраторе ODBC, и я смог подключиться к нему без проблем.

Я "реверс-инжиниринг" схемы в Visio, так что я могу получить хорошее визуальное представление отношений между таблицами и планировать, как я собираюсь переструктурировать данные 4D, чтобы вписаться в нашу схему. Я создал простое консольное приложение, поскольку это будет одноразовый запуск, и я могу сделать подключение к источнику данных, но как только я выполняю что-либо, соединение прерывается или отключается.

  System.Data.Odbc.OdbcConnection conn = 
               new System.Data.Odbc.OdbcConnection("Dsn=4D v12 datasource");
        try
        {
            conn.Open();
            Console.WriteLine("Status of Connection:" + conn.State.ToString());
            //Here it says the connection to the DB is open and ready for action
            Console.ReadLine(); 
            //pause to visually confirm  the connection is open
            OdbcCommand com = new OdbcCommand("SELECT * FROM ATable", conn);
            com.CommandType = CommandType.Text;
            Console.Write(com.ExecuteNonQuery());
            //Right here it blows up and closes the connection                
         }

Я также пытался что-то сделать с набором данных и адаптером данных, но безрезультатно.

System.Data.Odbc.OdbcConnection conn = new System.Data.Odbc.OdbcConnection("Dsn=4D v12 datasource");
        try
        {
            conn.Open();
            Console.WriteLine("Status of Connection:" + conn.State.ToString());                
            Console.ReadLine();
            OdbcCommand com = new OdbcCommand("SELECT * FROM ATable", conn);
            com.CommandType = CommandType.Text;
            //Also tried using data sets and data adapters
            DataSet dsTest = new DataSet();
            OdbcDataAdapter dataAdapter = new OdbcDataAdapter(com);
            //but right at this line the connection suddenly disconnects
            dataAdapter.Fill(dsTest);

        }
        catch (Exception e)
        {
            Console.WriteLine("Failure:" + e.Message.ToString());
            // the exception message reads simply connection has been disabled. 
            Console.WriteLine("Status of Connection: " + conn.State.ToString());
            Console.ReadLine();
        }
        finally 
        {
            Console.Write("Closing connection.");
            conn.Close();
            Console.Write(".");
            conn.Dispose();
            Console.WriteLine(".");
            Console.WriteLine("Connection Closed and Disposed");
            Console.ReadLine();
        }
Я пытался найти кого-нибудь, кто испытывал бы те же трудности, но документация, которую я нашел, была скудной и не очень полезной в этом конкретном отношении. Существует большое количество информации о выполнении запросов на 4D продукт, но не со всей цифровой делить. Кто-нибудь с опытом, пожалуйста, посоветуйте. Спасибо за ваше время и за любую помощь, которую вы можете оказать, заядлый читатель.
1 2

1 ответ:

По-видимому, основная причина проблемы заключалась в драйвере. После замены драйвера, который я получил с сайта, на тот, который прислал владелец, соединения перестали отключаться, и все работает по назначению.