Страница 1 из 1

Количество записей в таблице

Добавлено: 29 июн 2005, 13:01
pavel_rts
Как получить количество записей в таблице?
_Loop в данном в случае скорее не подойдет, так как имена таблиц меняются. Хотя может если объявить переменную типа Table, но не понятно как, в документации по VIP ничего не нашел?
:shock:

Добавлено: 29 июн 2005, 13:58
Max_Fin
Есть функция

Код: Выделить всё

function RecordsInTable (iTable : Integer) : LongInt; 
но она вернет сколько записей в физ. таблице, без учета наложенных на таблицу ограничений.
А вот _loop как раз и подойдет :lol:

Код: Выделить всё

#declare dclRecordsInTable(Tbl, lCount)
  #lCount := 0;
  _loop #Tbl
  {
     #lCount := #lCount + 1;
  }
#end

...

  #dclRecordsInTable(KatSopr, I);
  Message('В таблице KatSopr записей: ' + I);

Добавлено: 29 июн 2005, 14:53
Goblin
Нет слов ...

Пошел переписывать отчеты ...

Добавлено: 30 июн 2005, 00:30
pavel_rts
Этого конечно хорошо, но

в первом случае RecordsInTable(1) -работает ...
RecordsInTable(5) - Галка закрывается и только остается
Runtime error 213 in streams_.dll at 001C675

во втором случае, тоже ничего не получилось, система задувается, но не считает. (P.S. я вставляю в цикле имена табл, типа String)

Или я где-то не прав? :(

Добавлено: 30 июн 2005, 08:58
Алексей
1. RecordsInTable(tnKatos) например по основным. Katos должна быть объявлена во from что бы работало.
2. var i:longint;
i:=0;
_Loop katos inc(i);
message(string(i));

В мессадж покажется кол-во записей.

Добавлено: 30 июн 2005, 09:45
Max_Fin
pavel_rts писал(а): во втором случае, тоже ничего не получилось, система задувается, но не считает. (P.S. я вставляю в цикле имена табл, типа String)

Или я где-то не прав? :(
оригинально....
declare - это макроопределение, если вы передаете строку, то и цикл будет по строке
что-то вроде _loop 'KatSopr' {}
как у меня написано в примере так и используйте, не додумывайте.

Добавлено: 13 июл 2005, 10:05
Maverick
Макс рулит, он гуру макроопределений )))
Слушайте Макса, он правду говорит )))

Добавлено: 13 июл 2005, 10:57
Goblin
Хе, процентов 50 % отчетов сократились в объеме исходников на 30-60 % :)

Только жалко что вложеные макроопределения не поддерживаются и в случае ошибки трудновато искать, где там собака порылась ...