Имя: Пароль:
1C
1С v8
Максимальное значение индикатора RecordSet.Properties.Count
0 quux
 
13.05.14
10:10
1С:Предприятие 8.2 (8.2.19.83)

Всем доброго дня.

На форме есть индикатор который отображает процесс перебора записей таблицы внешнего файла БД. Для установки максимального значения индикатора использую значение RecordSet.Properties.Count, но при выполнении кода видно что шагов в цикле значительно больше. Какой параметр мне использовать для точного определения количества записей в таблице?

[code]
Connection = Новый COMОбъект("ADODB.Connection");
Попытка
    Connection.Open(СтрокаПодключения);
Исключение
    Сообщить(ОписаниеОшибки());                                        
    Возврат;
КонецПопытки;
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText = "select * FROM V_Record";
Command.CommandType = 1;
RecordSet = Новый COMОбъект("ADODB.RecordSet");
RecordSet = Command.Execute();
Индикатор = ЭлементыФормы.Индикатор1;
Индикатор.МаксимальноеЗначение = RecordSet.Properties.Count;
Индикатор.Значение = 0;
Пока RecordSet.EOF() = 0 Цикл
    RecordSet.MoveNext();
    Индикатор.Значение = Индикатор.Значение + 1;
КонецЦикла;
RecordSet.Close();
Connection.Close();
[/code]
1 ДенисЧ
 
13.05.14
10:11
Не все драйвера корректно отдают количество записей в рекордсете
2 ДенисЧ
 
13.05.14
10:12
Поэтому в совсем общем случае - только выполнить запрос 2 раза, первый из них получить count(*), потом данные
3 Ненавижу 1С
 
гуру
13.05.14
10:12
вообще то
Индикатор.МаксимальноеЗначение = RecordSet.RecordCount;
4 quux
 
13.05.14
10:22
(3) RecordSet.RecordCount возвращает -1
5 quux
 
13.05.14
10:28
(2) Спасибо за совет.

Посчитал количество шагов в цикле получилось 3504, а RecordSet.Properties.Count возвращал 88 )))
6 mikecool
 
13.05.14
10:29
мб RecordSet.Properties.Count возвращает размер порции выборки
7 Ненавижу 1С
 
гуру
13.05.14
10:30
(6) а не количество полей?
8 МихаилМ
 
13.05.14
11:13
.Properties.Count возвращает  количество колекции.

а нужно RecordSet.recordcount
Независимо от того, куда вы едете — это в гору и против ветра!