Главная
Новый форум
 FAQFAQ   SearchSearch   MemberlistMemberlist   UsergroupsUsergroups   RegisterRegister 
 ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

Специалистам по FileEval-помогите пожалуйста
Goto page Previous  1, 2
 
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4
View previous topic :: View next topic  
Author Message
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 17 Nov 2005 03:55    Post subject: Reply with quote

Да я не о том.
Индексы конечно вещь хорошая, но я о другом.
val предлагает искать несуществующие записи и добавлять их в файл.
У меня же формируется буфер, из него удаляются все существующие записи, пакуется и затем копируется в целевой файл.
Получается если не быстрее, то проще.
К тому же при подобных задачах клиенты просят не просто "синхронизировать" они постоянно хотят влиять на этот процесс исключая из добавления данные по одним им известным критериям.

SEEK несомненно быстрее,
Спасибо за напоминание.
Но и в таком виде делается почти мгновенно.
Так что дальнейшей оптимизацией не занимался.
Back to top
View user's profile Send private message Send e-mail Visit poster's website
dmitry



Joined: 03 Jan 2002
Posts: 33
Location: Орлов Д.В.
Occupation: Элипс-Опт
Interests: Москва

PostPosted: 17 Nov 2005 09:57    Post subject: Reply with quote

nordk wrote:
Поэтому я и говорю везде переход на харбор это ОЧЕНЬ ВАЖНО


Думаю, проблем меньше не станет. Хотя появился отладчик, это конечно плюс. Да и команды теперь можно использовать.

nordk wrote:

Извините но здесь Вы не понимаете функцию DBSEEK()
Она всегда ищет сначала и всегда встает на первую найденную - не надо думать что она начинает искать с места нахождения курсора.
Так что Ваше гарантированно - масло масленное


Согласен, DbGoTop() в данной ситуации действительно не обязателен.

nordk wrote:

2.Совместный диалог посмотрите и скажите что не получилось в данный момент быстрее. Вопросов много задают и вопросы есть очень сложные, которые надо в текстах долго выискивать - всем надо помочь

DbSeek() в данном примере не работает. Почему? Не понятно.
nordk wrote:

Мой многолетний опыт применения этого FileEval - целый модуль на нем написан тексты приличных размеров отладить это наверно что-то значит ?

А давайте не будем меряться размерами... Мой опыт работы с Fileeval-ом позволяет с Вами не согласиться

nordk wrote:

Еще раз повторяю или перечитайте выше в харборе работает а в FileEval нет - потому что он не харбор.

Код указанный ниже будет работать в Fileeval?
Code:

mlabel->(addrec())
mlabel->grup:=NewMlabel->grup
mlabel->nnum:=NewMlabel->nnum
mlabel->(f_dbunlock())


А вот решение задачи, которую предложил Val:
Code:

//function main
Private cPath
cPath:="c:\temp\"
//altd()
if !file(cPath+"mlabel.dbf")
   sayandwait("Не найден файл по пути "+cPath +" !")
else
   NetUse("NewMlabel",cPath+"Mlabel.dbf")
   newMLabel->(DbGotop())
   Do While NewMlabel->(!eof())

   DbPush("MLABEL","MLABEL",,{"UPPER(GRUP+NNUM)",upper(NewMlabel->(Grup+Nnum))})

   if Mlabel->(Eof())
           mlabel->(addrec())
           mlabel->grup:=NewMlabel->grup
           mlabel->nnum:=NewMlabel->nnum
           mlabel->(f_dbunlock())
   endif

   DbPop()

   NewMlabel->(DBskip())

   enddo
endif
//return


К сожалению, так как поиск не работает пришлось делать через функциюю DbPush() и скоб. Это быстрее чем фильтр, но медленнее чем поиск по ключу.
Если убрать комментарии в начале и конце текста, то получится код пригодный для компиляции с помощью harbour.exe
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 17 Nov 2005 11:34    Post subject: Reply with quote

mlabel->(addrec())
mlabel->grup:=NewMlabel->grup
mlabel->nnum:=NewMlabel->nnum
mlabel->(f_dbunlock())

В таком виде FileEval работать не будет, только HFileEval
Меряться действительно не будем, но различия между ними день и ночь - это бесспорно.
Отлдачик это не просто плюс - я решение которое полгода отладить не мог отладил за 2 часа - думаю это серъезно.
Плаваюущю ошибку искать запарился через SayAndWait() да не видя состояния таблиц.
Если у Вас не работает DBSEEK() то только по 3 причинам
- нет индекса
- индекс поврежден
- не правильный ключ поиска или не те в нем значения.
Собственно говоря нужно просто успокоится, еще раз посмотреть свежим взглядом и все заработает.
Back to top
View user's profile Send private message Send e-mail
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 17 Nov 2005 11:35    Post subject: Reply with quote

ЯКОВУ
Ваше мнение что искать несуществующую запись не по индексу быстрее это тоже заблуждение. Как раз по индексу сразу и найдете
Back to top
View user's profile Send private message Send e-mail
Яков



Joined: 04 Mar 2002
Posts: 618
Location: Яков
Occupation: Экстремальная терапия бизнеса
Interests: Владивосток

PostPosted: 18 Nov 2005 02:22    Post subject: Reply with quote

nordk wrote:
Ваше мнение что искать несуществующую запись не по индексу быстрее это тоже заблуждение.

Я такого не говори
Back to top
View user's profile Send private message Send e-mail Visit poster's website
nordk



Joined: 27 Jun 2005
Posts: 1000
Location: Горбунов Константин
Occupation: БЭСТ-Партнер
Interests: СПб

PostPosted: 18 Nov 2005 09:32    Post subject: Reply with quote

Да, виноват неправильно прочитал......
Приношу свои извинения
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
Post new topic   Reply to topic   printer-friendly view     Forum Index -> Программирование в БЭСТ-4 All times are GMT + 4 Hours
Goto page Previous  1, 2
Page 2 of 2

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © phpBB Group

Rambler
Rambler's Top100 Рейтинг@Mail.ru