Имя: Пароль:
1C
1C 7.7
v7: Количество записей в запросе
0 kupec
 
19.08.21
09:00
Добрый день, есть вот такой запрос

Cmd=СоздатьОбъект("ADODB.Command");                                      
Cmd.ActiveConnection=Соединение;
Cmd.CommandTimeOut=10;
Cmd.CommandType=1;
Cmd.Commandtext=СокрЛП("SELECT     CODE FROM SC2463 WHERE (ISMARK=0 and SP2464 = '   22I   ')");
Rs.ActiveConnection=Соединение;
Rs=Cmd.Execute();
Пока Rs.EOF()=0    Цикл
    Сообщить(Rs.Fields(0).Value);
    Rs.MoveNext();
КонецЦикла;

Он работает, все с этим хорошо. Можно ли каким то образом перед обходом цикла узнать, сколько записей (или как там их называют) содержит результат выполнения запроса. Почему то Count не срабатывает
1 trad
 
19.08.21
09:18
2 Ёпрст
 
19.08.21
09:19
Нам отсюда не видно, как ты используешь count в тексте запроса, и зачем используешь ado, заместо 1cpp, например
3 kupec
 
19.08.21
09:22
(2) т.е. в тексте запроса нужно задать, что мне необходимо получить количество записей? Типа как в 7.7 Счётчик?
4 kupec
 
19.08.21
09:22
(1) пробовал вот так
Rs.RecordCount()
Выдает -1
5 trad
 
19.08.21
09:27
(4) значит рекордсет не знает сколько записей будет выбрано.
В таком случае узнать можно только прокрутив весь рекордсет.
1) ты сам можешь это сделать прокрутив цикл два раза
2) использовать GetRows, но это вернет массив, а семерка их не умеет
6 trad
 
19.08.21
09:28
правильный ответ в (2) - 1cpp
7 ДенисЧ
 
19.08.21
09:48
Так в строке соединения (?) нужно указать правильный тип курсора...
8 Sserj
 
19.08.21
09:56
Ну как вариант:

SELECT
  CODE
  , row_number() over (order by code) as [НомерТекущейСтроки]
  , row nuber() over (opder by code desc) as [СтрокДоКонцаВыборки]
ROM
  SC2463
WHERE (ISMARK=0 and SP2464 = '   22I   ')
order by
  CODE
9 kupec
 
23.08.21
08:42
(7) строка соединения
"Provider=SQLOLEDB; Server=192.168.0.100;User ID=sa;Password=пароль;Database=база;"
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший