Способ получения количества записей зависит от планируемого приложения.
Наши администраторы баз данных просто используют утилиты прогресса. В Unix / usr / dlc / bin / proutil -C dbanalys или в другом варианте, чтобы получить информацию о базе данных и просто вывести ее в файл.
Чтобы получить информацию о схеме из самого процесса, вы можете использовать таблицы VST. В частности, в конкретной базе данных вы можете использовать таблицу _file для получения всех имен таблиц.
Когда у вас есть имена таблиц, вы можете использовать запросы, чтобы получить количество записей в таблице. Самый быстрый способ запросить определенную таблицу для подсчета записей - использовать предварительный выбор.
Это потребует использования динамического буфера и запроса.
Так что вы можете сделать что-то вроде следующего.
CREATE WIDGET-POOL.
DEF VAR h_predicate AS CHAR NO-UNDO.
DEF VAR h_qry AS HANDLE NO-UNDO.
DEF VAR h_buffer AS HANDLE NO-UNDO.
FOR EACH _file NO-LOCK:
h_predicate = "PRESELECT EACH " + _file._file-name + " NO-LOCK".
CREATE BUFFER h_buffer FOR TABLE _file._file-name .
CREATE QUERY h_qry.
h_qry:SET-BUFFERS( h_buffer ).
h_qry:QUERY-PREPARE( h_predicate ).
h_qry:QUERY-OPEN().
DISP _file._file-name h_qry:NUM-RESULTS.
DELETE OBJECT h_qry.
DELETE OBJECT h_buffer.
END.