|
значение индекса ???
|
|||
---|---|---|---|
#18+
можно ли получить значение (не выражение) индекса некой отдельно взятой записи? то есть мне нужно проверить соответствует ли данной записи индекс. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 13:21 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
k=key() ?&k но вообще-то обычно используют конструкции типа If seek(_key)... либо seek(_key) Do while pole1+pole2+... = key либо Locate If foun() и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 13:27 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
не совсем то .... сейчас использую вот такую методу., lcKey=key() nrrec=Recno() Set Key To &lcKey Go nrrec If nrrec#Recno() && знать чтото не так endif но хотелось бы без лишних движений .... встал на запись получил значение индекса "nind" например и : If nidn#&lcKey && знать чтото не так endif ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 13:46 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Борискаможно ли получить значение (не выражение) индекса некой отдельно взятой записи? то есть мне нужно проверить соответствует ли данной записи индекс.Ну задлянафига? Проверять корректность индексов? Ну проверил и что дальше? Переиндексация? А почему сразу ее не сделать? В чем выигрыш? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 13:54 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
переписать запись это исправит индекс Scatter Memvar Gather Memvar ненужен монопольный доступ и периндексация иногда немаленьких таблиц чтобы исправить индекс одной записи . ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 13:59 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
В данном случае нужен не KEY(), а EVALUATE(KEY()) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 15:24 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
согласен. но вопрос остался открыт! ... |
|||
:
Нравится:
Не нравится:
|
|||
08.09.2009, 15:30 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
В клиппере, помнится, такая функция была. В фоксе ее нет, увы ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2009, 12:13 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
жаль если так .... но fox ведь ищет !!! как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2009, 12:44 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Борискажаль если так .... но fox ведь ищет !!! как ? Вам ведь GermanGM уже подсказывал выше : Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2009, 14:52 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
GermanGM подсказал чем заменить &key() это подсказка в сторону повышения скорострельности но вот результат возвращаемый &key() или Evaluate(key()) бутет один а нужен другой.... ... |
|||
:
Нравится:
Не нравится:
|
|||
09.09.2009, 15:00 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаGermanGM подсказал чем заменить &key() это подсказка в сторону повышения скорострельности но вот результат возвращаемый &key() или Evaluate(key()) бутет один а нужен другой.... А вообще, откуда у вас пошла такая странная идея, что портится именно значение ключа? В 99 случаев из ста в индексе портится структура. SCATTER/GATHER может помочь прибить проблемный узел и перестроить его на новый листовой узел индекса. А может и не помочь, если проблема не в одном только узле. Более того, надо помнить, что структура дерева на каждом UPDATE полей становится все более высокой и рыхлой. Полный реиндекс будет гораздо надежнее, да и повысит производительность индекса за счет снижения высоты дерева. По самому вопросу: 1. Фокс хранит значения KEY ни разу не так, как сами данные. 2. Выдернуть это значение можно прочитав его из индексного файла. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 07:03 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаGermanGM подсказал чем заменить &key() это подсказка в сторону повышения скорострельности но вот результат возвращаемый &key() или Evaluate(key()) бутет один а нужен другой.... Короче, человек решил на самом низком уровне править индексный файл, подменяя своей фантазией весь механизм команд INDEX/REINDEX. Флаг в руки. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 09:04 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
reware, очень безапелляционно, браво. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 10:47 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Kruchinin Pahan, спасибо, суть вопроса как раз в том разбирать .cdx или есть более простой способ. простого видимо нет. вот только не знаю спрашивать как или лучше не надо (вдруг это крамола...) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 10:54 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаKruchinin Pahan, спасибо, суть вопроса как раз в том разбирать .cdx или есть более простой способ. простого видимо нет. вот только не знаю спрашивать как или лучше не надо (вдруг это крамола...) В хелпе есть описание структуры компаундного индексного файла. Но у меня есть подозрение, что достоверно проверить целостность индекса можно только перебрав все дерево целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:12 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
> Автор: Бориска Вопрос был в том, как получить значение индекса для отдельно взятой записи, только сколько Вас не спрашивали, Вы так и не ответили и я так и не понял для чего, Вам, это нужно. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:21 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
ну да. действительно существуют такие ошибки индекса при котором портится только одна запись получается что locate или seek по какомуто другому тегу запись находит, а seek по сбойному тегу не находит. и казалось бы действительно обновите только эту запись и все восстановится. но думаю не все так просто: индекс хранить соответствие индексных значений номерам записей а не наоборот. т.е. исходя из записи невозможно найти индесное значение из cdx ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:28 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
АлексейОневозможно :-) пожалуй всетаки возможно, но эта задача сравнима с переиндексацией и выполнять её налету для каждой записи будет накладно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:32 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Игорь Горбонос, автор просто думает, что он изобрел таки способ проверки и коррекции индекса на ходу, в "фоновом" режиме. Только вот он накак не может понять, что кроме значений ключевых выражений индекс еще и структурирован и структура индекса неразрывно связана с его корректностью и правкой значения ключа он индекс не поправит. И что он далеко не первый такой "изобретатель" и все предыдущие пришли к одному и тому же выводу: индекс - это производная от данных и любые проверки и коррекции, в конце концов, сводятся к сканировнию всей таблицы и выполнению кучи действий, которые нафиг не нужны при обычной переиндексации с одинаковым, в общем-то, результатом. Зачем делать лишнюю работу? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:34 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
проходящий. Я просто хочу, что-бы ТС сам озадачился и ответил на вопрос, зачем ему нужно знать значение ключа индекса для отдельной записи, а не наши домыслы. :) З.Ы. Мой хрустальный шар ещё не предсказыват так хорошо как твой , но помочь желающим заблудится, это мы завсегда пожалуста Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 11:59 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
если я отвечу зачем вы ответите как ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 12:22 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
> Автор: Бориска > если я отвечу зачем вы ответите как ? Тебе дали один способ, читать из индексного файла, второй способ это реализовать алгоритм создания индекса самостоятельно и скармливать на вход данные для которых будет расчитыватся значение индекса. Оба способа не назовёшь тривиальными, поэтому и хочется узнать для чего это понадобилось. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 12:34 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Игорь Горбонос, предупрежден значит вооружен! я хочу знать что в результате аварийного выхода из программы некого отдельного пользователя не возникла необходимость проиндексировать таблицу N или таблицы N и N' . чтобы не индексировать все 10 или 20 или 100 или сколько там будет прога использовать таблиц из них некоторые таблицы могут быть велики а пользователь может уходя на обед из розетки системник выключает о чем ввиду диковенности способа я даже не догадываюсь .... это к примеру ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 12:48 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
> Автор: Бориска > я хочу знать что в результате аварийного выхода из программы некого отдельного пользователя не возникла > необходимость проиндексировать таблицу N или таблицы N и N' . Понятно, почитай это тынц а я, например, не вижу никаких способов это узнать не проиндексировав по-новой и не сравнив "старый" индексный файл с "новым", причем побайтно . Тогда уж просто запускать переиндексацию первентивно. Кстати, как ты видишь процес проверки? Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 12:58 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаИгорь Горбонос, предупрежден значит вооружен! я хочу знать что в результате аварийного выхода из программы некого отдельного пользователя не возникла необходимость проиндексировать таблицу N или таблицы N и N' . чтобы не индексировать все 10 или 20 или 100 или сколько там будет прога использовать таблиц из них некоторые таблицы могут быть велики а пользователь может уходя на обед из розетки системник выключает о чем ввиду диковенности способа я даже не догадываюсь .... это к примеруКакой оригинальный вопрос!... За почти 30 лет существования клонов DBase прямо никто таким не озаботился... Уж сколько раз твердилось миру - организационные проблемы программным путем не решаются, какими бы гениальными себя прграммисты не считали. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 13:04 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Игорь Горбонос, >Кстати, как ты видишь процесс проверки? вкратце так: a=вычисляемое значение в=считанное значение if a#b && караул endif проверить все записи во всех таблицах или диапазон записей или одну это исходя из предпосылок ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 13:35 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Бориска Игорь ГорбоносКстати, как ты видишь процесс проверки? вкратце так: a=вычисляемое значение в=считанное значение if a#b && караул endif проверить все записи во всех таблицах или диапазон записей или одну это исходя из предпосылок Т.е. в худшем случае пересчитать индекс для всех записей всех таблиц, а потом перестроить этот индекс. Намного быстрее будет сразу переиндексировать данные. Потому, что предпосылок как правило нет, или их реализация так-же будет зависить от выдергивания шнура питания. Может имеет смысл перейти на какой-нибудь SQL сервер? Корорый сам будет поддерживать своё состояние. Можно даже не MSSQL, а что-то из менее требовательных к железу, FireBird например. Хотя ссылку я тебе уже давал. Posted via ActualForum NNTP Server 1.4 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 14:13 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаИгорь Горбонос, >Кстати, как ты видишь процесс проверки? вкратце так: a=вычисляемое значение в=считанное значение if a#b && караул endif проверить все записи во всех таблицах или диапазон записей или одну это исходя из предпосылок Нарушения значения одной конкретной записи в индексном файле не бывает. В теории может быть. Раз в сотню тысяч лет. Как вы не понимаете, в индексах рушится структура дерева, а не конкретные значения. И восстановление "значения" в индексе требует перестроения либо всего дерева, либо части дерева. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 14:26 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Kruchinin Pahan Как вы не понимаете, в индексах рушится структура дерева, а не конкретные значения. И восстановление "значения" в индексе требует перестроения либо всего дерева, либо части дерева. +1024. Товарищу лениво и скучно изучить азы построения дерева индекса. Куда проще написать себе a#b и задуматься над этим на долгие годы :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 15:22 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
reware, Цитата #: Говорят, что можно очиститься через страдания. А может ли картошка сама очиститься таким способом? если да, то как заставить картошку страдать? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 15:28 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Борискаreware, Цитата #: Говорят, что можно очиститься через страдания. А может ли картошка сама очиститься таким способом? если да, то как заставить картошку страдать? Это ваша следующая задача по плану, после самодельного восстановления индексов ? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 15:36 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
БорискаГоворят, что можно очиститься через страдания. А может ли картошка сама очиститься таким способом? если да, то как заставить картошку страдать? Заставить картошку проверять базы этим алгоритмом Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 19:31 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Бориска вкратце так: a=вычисляемое значение в=считанное значение if a#b && караул endif проверить все записи во всех таблицах или диапазон записей или одну это исходя из предпосылок Почитайте http://fox.wikis.com/wc.dll?Wiki~IndexCorruption~VFP. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.09.2009, 19:54 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Проходящий, проходи. Извините, не удержался... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2009, 19:11 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
rewareПочитайте http://fox.wikis.com/wc.dll?Wiki~IndexCorruption~VFP. Бориска, ну уж если очень вам хочется решить задачу так как Вы её и задумали Ну попробуйте вот так: выполнить выборку select так чтоб не включилась оптимизация по индексу, и выполните туже выборку с оптимизацией, сравните результаты, если вы сможете вычислить на какой именно записи разнятся - перепешите её(но я не уверен что переписка исправит индекс). однако, я уже отмечал что это огромный объем вычислений, проще переиндесировать по планировщику ночью, или при первом входе в программу первого пользователя. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2009, 12:27 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
АлексейО Бориска, ну уж если очень вам хочется решить задачу так как Вы её и задумали Ну попробуйте вот так: Тише, тише, не мешайте человеку, он сейчас как раз знакомится со структурой индексного файла. Лучше поздно, чем никогда. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2009, 12:47 |
|
значение индекса ???
|
|||
---|---|---|---|
#18+
Табличка с именем пользователя, временем начала и конца сеанса работы с программой, и можно придумать какое-то поле-флаг, типа выйти всем из сумрака . В некоторое время "Ч" ставится флаг - "все из программы вон", ждем пока по таймеру программы проверят наличие флага и выйдут с сохранением. Если отсутствует время окончания сеанса - тогда пользователь некорректно вышел из программы. Имя пользователя есть, можно начинать ругаться :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
24.09.2009, 14:28 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1586031]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
52ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
others: | 363ms |
total: | 528ms |
0 / 0 |