Имя: Пароль:
1C
 
(ADODB.Recordset): Текущий объект Recordset не поддерживает закладки
0 Shved_72
 
29.02.16
13:45
Таблицу сам создал, с скуле отрабатывает.
из 1с тотже заспрос не хочет:

Произошла исключительная ситуация (ADODB.Recordset): Текущий объект Recordset не поддерживает закладки. Это связано с ограничением поставщика или с выбранным типом курсора.

сам запрос прост как валенок (как и таблица, единственное что у нее пишется онлайн из другого места, я читаю из 1с).

"/****** Сценарий для команды SelectTopNRows среды SSMS  ******/
SELECT [Name]
      ,[Tool]      
  FROM [Test].[dbo].[Sex]"
1 lubitelxml
 
29.02.16
13:47
(0) название таблицы зачет )
2 Necessitudo
 
29.02.16
15:34
Так не хочешь показать как сам объект Recordset создаешь?
3 vde69
 
29.02.16
15:38
вроде как [dbo] должен быть первым ?
4 vde69
 
29.02.16
15:39
SELECT [Name]
      ,[Tool]      
  FROM [dbo].[Test].[Sex]

или вообще так

SELECT [Name]
      ,[Tool]      
  FROM [dbo].[Sex]"
5 Shved_72
 
29.02.16
15:42
трокаСоединения = "DRIVER={ODBC Driver 11 for SQL Server};SERVER=(local);UID=sa;PWD=порно;DATABASE=секас";
    
    Connection  = Новый COMОбъект("ADODB.Connection");
    Connection.ConnectionString=СтрокаСоединения;    
    Connection.Open();

    Command      = Новый COMОбъект("ADODB.Command");
    Command.ActiveConnection       = Connection;
    RecordSet      = Новый COMОбъект("ADODB.RecordSet");
    ТекстЗапроса = "";                          
        
    Command.CommandText         = ТекстЗапроса;
    RecordSet                    = Command.Execute();
    
    Пока RecordSet.EOF Цикл
RecordSet.MoveNext();
    КонецЦикла;
6 Necessitudo
 
29.02.16
15:46
(3) Нет, dbo должно идти вторым или вообще его быть не должно.
7 Necessitudo
 
29.02.16
15:47
(5) Что за каша???
8 Necessitudo
 
29.02.16
15:48
RecordSet  = Command.Execute();
Ты издеваешься?
9 Necessitudo
 
29.02.16
15:49
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionString = СокрЛП(Справочники.tsНастройкиИмпортаЭкспорта.СтрокаСоединенияOracle.Значение);
Connection.Open();

RecordSet =  Новый COMОбъект("ADODB.RecordSet");

RecordSet.ActiveConnection = Connection;
RecordSet.CursorType = 3;
RecordSet.LockType = 2;

ТекстЗапроса = "Select COUNT(ARTICUL), STORE From ECONTROL.V_REMAINS_1C
                    |where STORE IN " + СписокСкладовСтрокой + " AND QUANTITY > 0
                    |group by STORE";
    
    Попытка
        RecordSet.Open(ТекстЗапроса, Connection);
    Исключение
        Сообщить(ОписаниеОшибки());
        Connection.Close();
        Возврат;
    КонецПопытки;

    КоличествоКолонок = RecordSet.Fields.Count;

    Пока RecordSet.Eof()=0 Цикл
        НоваяСтрока = ОстаткиОракла.Добавить();
        Для НомерКолонки=0 По КоличествоКолонок - 1 Цикл
            НоваяСтрока[ОстаткиОракла.Колонки[НомерКолонки].Имя] = RecordSet.Fields(НомерКолонки).Value;
        КонецЦикла;
        RecordSet.MoveNext();
    КонецЦикла;

    RecordSet.Close();

    Connection.Close();
10 Shved_72
 
29.02.16
16:01
этот кусок уже давно юзаю и работал. даже с (8).
забил твой:
http://i.imgur.com/YpB7XQI.jpg

ошибка та же.

рядом в другом очтете этот же код работает, но там один вызывает 1 раз, а тут по кругу обработкой ожидания
11 Shved_72
 
29.02.16
16:08
дак в исключение не заходит, т.е. подключение корректно, а при попутке перебрать записи - ложь
12 Shved_72
 
29.02.16
16:13
нашел
13 Shved_72
 
29.02.16
16:15
цикл надо так
Пока НЕ RecordSet.EOF Цикл

всем спасибо. простите что отнял ваше время
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший