Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как определить количесвто записей в глобале / 8 сообщений из 8, страница 1 из 1
25.11.2009, 22:14
    #36332204
fotopravka.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
Какими средствами Cache можно определить количество записей в глобале.
См рисунок.
То есть имеем 52184 записи (строк) в глобале. Перерыл все что возможно, но так и не понял как можно узнать эту цифру средствами Cache. Что то близкое через $Order, но там больше для вычисления данных с повторяющимися значениями.
Что делать . какие есть варианты и предложения?
...
Рейтинг: 0 / 0
25.11.2009, 23:21
    #36332289
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
ну такие данные нигде нельзя так просто получить, их в любом случае нужно посчитать самому
и самый простой способ это сделать через $Order

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 s cnt= 0 
 s ind=$o(^B.ADD("")) 
 while ind'="" {  
   s ind=$o(^B.ADD(ind))
   s t=$i(cnt)
 }
 w "узлов = ",cnt

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
26.11.2009, 08:07
    #36332563
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
fotopravka.ruТо есть имеем 52184 записи (строк) в глобале.

Это значение счетчика для автоинкремента ID - если программы не оперируют с ним напрямую, и глобал не восстанавливается из внешнего файла - (счетчик при этом сотрется) - то он равен последнему (максимальному) ID.

К реальному кол-ву записей он имеет отдаленное отношение. Нужно узнать количество - вверху пример программы
...
Рейтинг: 0 / 0
26.11.2009, 08:27
    #36332587
Valeriu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
s n="",n=$zp(^B.ADD(n)) w n

???
...
Рейтинг: 0 / 0
26.11.2009, 09:28
    #36332661
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
Valerius n="",n=$zp(^B.ADD(n)) w n

???
это всего лишь покажет номер последней записи, на активной бд, в которой постоянно идет удаление добавление записей, это ничего не даст
и равнозначно

s n="",n=$o(^B.ADD(n),-1) w n
...
Рейтинг: 0 / 0
26.11.2009, 09:52
    #36332697
fotopravka.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
На самом деле вариант
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
 s cnt= 0 
 s ind=$o(^B.ADD("")) 
 while ind'="" {  
   s ind=$o(^B.ADD(ind))
   s t=$i(cnt)
 }
 w "узлов = ",cnt

и вариант
Код: plaintext
1.
s n="",n=$zp(^B.ADD(n)) w n 

очень пригодились. Мне нужны были оба варианта. Первый постольку поскольку, а второй - номер ID последней записи очень нужен, особенно когда идет цикл и встречаются дырки в ID. Так хоть знаешь до какого ID идти и если есть дырки в нумерации - то их пропускать.

Варианты разные. Этот вариант оказался рабочим и выдает номер ID последней записи (что требовалось)
Код: plaintext
1.
s n="",n=$zp(^B.ADD(n)) w n 

а вот такой вариант
Код: plaintext
1.
s n="",n=$o(^B.ADD(n),- 1 ) w n
Пишуе ошибку <Syntaxys>
и оказался нерабочим


Всем спасибо. Полностью получил ответ на свой вопрос.
...
Рейтинг: 0 / 0
26.11.2009, 10:25
    #36332789
DAiMor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
первый вариант, как раз удобен чтобы игнорировать дырки

а то что у вас ошибка синтаксиса, это может вы неправильно перепечатали

_________________________________
Cache for Windows NT (AMD64) 5.0.21 (Build 6408) Tue Jan 3 2006 13:37:41 EST
...
Рейтинг: 0 / 0
26.11.2009, 17:06
    #36334157
fotopravka.ru
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как определить количесвто записей в глобале
DAiMorпервый вариант, как раз удобен чтобы игнорировать дырки
а то что у вас ошибка синтаксиса, это может вы неправильно перепечатали


Перепроверил.

Код: plaintext
1.
s n="",n=$o(^B.ADD(n),- 1 ) w n
В самом деле вариант оказался рабочий
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как определить количесвто записей в глобале / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]