On-line: Andrey, Dr. Oldwarez, гостей 0. Всего: 2 [подробнее..]
АвторСообщение
постоянный участник




Пост N: 303
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 29.07.07 09:48. Заголовок: Подскажите алгоритм проверки л/счетов


Всем привет.

Имеется база из 50 000 записей. В ней поле Л/счета абонента С 8.0
Подскажите алгоритм проверки на сдвоенные-строенные л.счета
Только быстрый алгоритм, а то у меня медленно что-то проверяет.
Язык хХарбор.

Заранее спасибо.

Спасибо: 0 
Профиль
Ответов - 6 [только новые]


администратор




Пост N: 776
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.07 11:58. Заголовок: Re:


Andrey пишет:

 цитата:
Подскажите алгоритм проверки на сдвоенные-строенные л.счета


В момент заведения или нужно проверить уже текущую базу ?

Спасибо: 0 
Профиль
администратор




Пост N: 777
Зарегистрирован: 17.05.05
ссылка на сообщение  Отправлено: 29.07.07 12:34. Заголовок: Re:


Проверка в момент ввода

Индекс по полю счета chet

Func Test()
local ret:=.t.
local old_rec:=baza->(recno())
local ctestik:=baza->chet
if baza->(dbseek(ctestik))
do while baza->chet==ctestik
if baza->(recno())#old_rec
ret:=.f.
? "Есть такой счет......."
exit
endif
baza->(dbskip())
enddo
endif
baza->(dbgoto(old_rec))
return ret

Спасибо: 0 
Профиль
постоянный участник




Пост N: 304
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.07 10:04. Заголовок: Re:


Dima пишет:

 цитата:
В момент заведения или нужно проверить уже текущую базу ?



Нужно проверить уже текущую базу. В момент ввода это понятно.
А вот как быстро проверить всю базу, это проблема.

Спасибо: 0 
Профиль
Администратор




Пост N: 564
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 30.07.07 10:27. Заголовок: Re:


Local abad := {}
Local xKey := '!@#$%^'

go top
while ! eof()
if Key == xKey
AADD(aBad, RecNo())
endif
xKey := Key
skip
enddo

в результате в массиве aBad будут номера записей с повторяющимися ключами


Спасибо: 0 
Профиль
постоянный участник




Пост N: 305
Зарегистрирован: 12.09.06
ссылка на сообщение  Отправлено: 30.07.07 19:24. Заголовок: Re:


Pasha пишет:

 цитата:
в результате в массиве aBad будут номера записей с повторяющимися ключами



И наверно перед проверкой нужно построить индекс по полю проверки ?

Спасибо: 0 
Профиль
Администратор




Пост N: 565
Зарегистрирован: 23.05.05
ссылка на сообщение  Отправлено: 31.07.07 08:10. Заголовок: Re:


Andrey пишет:

 цитата:
И наверно перед проверкой нужно построить индекс по полю проверки ?



само собой

Спасибо: 0 
Профиль
Тему читают:
- участник сейчас на форуме
- участник вне форума
Все даты в формате GMT  3 час. Хитов сегодня: 119
Права: смайлы да, картинки да, шрифты да, голосования нет
аватары да, автозамена ссылок вкл, премодерация откл, правка нет