Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Повторное подключение к внешнему источнику данных из 1С

Повторное подключение к внешнему источнику данных из 1С
Я
   bluekrab
 
03.11.16 - 12:32
Добрый день. Делаю подключение к файлу .GDB из 1с. Первое подключение проходит нормально. При повторном появляется ошибка:Произошла исключительная ситуация (ADODB.Recordset): Аргументы имеют неверный тип, выходят за пределы допустимого диапазона или вступают в конфликт друг с другом.

Процедура подключения/отключения:

    
Connection = Новый COMОбъект("ADODB.Connection");
      Connection.ConnectionString = "Driver=Firebird/InterBase(r) driver;" +
     "Dbname=" + СокрЛП(Объект.ПутьКФайлу) + ";" + 
     "UID=" + СокрЛП(Объект.Пользователь) +   ";" +                             

     "PWD=" + СокрЛП(Объект.Пароль);                             

    Попытка
        Connection.Open();
        Сообщить("Успешное подключение");
        
        
    Исключение
        Сообщить("Подключение к БД  не установлено. Проверьте настройки подключения");
        Connection = Неопределено;
    КонецПопытки;
///////////////////////////////////////    

     RS = Новый COMОбъект("ADODB.Recordset");
            RS.Open("Select produce.id From  produce Where produce.isactive = 1" , Connection);
            RS.MoveFirst();        
            Пока RS.EOF()=0 Цикл  
                  Cообщить(RS.Fields("id").Value);
                Попытка
                    RS.MoveNext();
                Исключение
                    Прервать;
                КонецПопытки;
            КонецЦикла;
        RS.Close();    
        RS = Неопределено;

    Connection.Close();
    Connection = Неопределено;
 
 
   bluekrab
 
1 - 03.11.16 - 12:51
ап
   Живой Ископаемый
2 - 03.11.16 - 12:54
а зачем второй раз подключаться?
так происходит всегда? даже если пыаешься подключиться например спустя 20 минут?
   Живой Ископаемый
3 - 03.11.16 - 12:55
а, потому что ты его обнуляешь зачем-то, ну ок...
   Живой Ископаемый
4 - 03.11.16 - 12:56
Еще раз, ошибка на этой строчке:
RS.Open("Select produce.id From  produce Where produce.isactive = 1" , Connection);
?
   Живой Ископаемый
5 - 03.11.16 - 12:59
Раздерибань строку на такие:

    Команда = Новый COMОбъект("ADODB.Command");
    Команда.ActiveConnection = Connection;
Команда.CommandText = "Select produce.id From  produce Where produce.isactive = 1";
    НаборЗаписей = Новый COMОбъект("ADODB.RecordSet");
    Попытка
        НаборЗаписей = Команда.Execute();
    Исключение
        ОписаниеОшибки = ОписаниеОшибки();
        //Сообщить(ОписаниеОшибки);

        //А.П. май 2012

        ЗаписьЖурналаРегистрации("Paradox.НаборЗаписей.Исключение",УровеньЖурналаРегистрации.Ошибка,,,Команда.CommandText+Символы.ПС+ОписаниеОшибки,);
        

    КонецПопытки;




И можно еще


    Connection.ConnectionTimeOut =20;
    Connection.CursorLocation = 1; 
    Connection.Mode=1;


Перед  

Попытка
        Connection.Open();
   Живой Ископаемый
6 - 03.11.16 - 13:03
но только чур, это не внешние источник данных как это принято в 1Совской терминологии.
   bluekrab
 
7 - 03.11.16 - 13:14
(6) прошу прощения за терминологию)
Да, ошибка в этой строке. Раздерибанить не получилось:
Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.
   Живой Ископаемый
8 - 03.11.16 - 15:17
А почему не получилось? Раздерибань

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует