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

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

Добавлено: 30 июн 2005, 15:50
Natalika
Хотела вытащить количество записей каждой таблицы в отдельности...
для начала попробовала в Support-> SQL написать что то типа:
select count(*) from katsopr;
ну и по разному... так у меня ничего и не получилось... то то не так то аргумент не тот, вобщем плюнула на это дело. И нацарапала интерфейсик... но он что то не хочет работать как хотелось бы...
Гляньте пожалуйста... У кого какие мысли есть. :cry:

Interface GetTable;
Create View
from x$files;
file f;
HandleEvent
cmInit:
{
var k,i:longint;
StartNewVisual(vtRotateVisual,vfBreak+vfTimer+vfConfirm,'',0);
SetVisualTitle('Создание списка таблиц');
f.Openfile('c:\qqqq.txt',stCreate);
_Loop x$files
{
k:=RecordsInTable(x$files.xf$code);
//если кол-во записей не нулевое то выкинуть в txt
if k<>0
f.writeln(string(x$files.xf$code)+' - '+string(k));
}
f.close;
StopVisual('',0);
}
end; // HandleEvent InterFace
end.

Дополнение к предыдущему

Добавлено: 30 июн 2005, 15:52
Natalika
Работает не так как хотелось бы... означает что после первой интерации цикла... интерфейс уходит в никуда...

Добавлено: 30 июн 2005, 16:33
Goblin
RecordsInTable имеет аргументом номер таблицы в ЛТ , а не в словаре - так что ...

Точно, мне один раз пришлось такую прогу писать

Добавлено: 01 июл 2005, 06:36
san
Вообщем виде это выглядело так.
на sup-sql писался скрипт, который для каждой таблицы в словаре выдавал строку типа logstrtofile('tablerec.txt',recordsintable(tnтаблица));
из запроса я потом исключил временные таблицы.
из заключение увеличил кеш битрива с 8 до 32 м, нехватало открыть все таблицы словаря.
Все это справедливо для битрив, для скл платформ такие вещи лучше писать на чем нибудь другом, акцесе например.