| View previous topic :: View next topic   | 
	
	
	
		| Author | 
		Message | 
	
	
		Val
 
 
  Joined: 21 Jan 2004 Posts: 19 Location: Ц.В.Ю. Occupation: Бухгалтер программист Interests: Москва
  | 
		
			
				 Posted: 13 Nov 2005 20:24    Post subject: Специалистам по FileEval-помогите пожалуйста | 
				     | 
			 
			
				
  | 
			 
			
				//программа должна проверять наличие записей в номенклатурнике с 
 
//файлом в с:\temp\mlabel.dbf и добавлять отсутствующие
 
//сейчас она их добавляет все (включая уже существующие)
 
 
 
 	  | Code: | 	 		  Private cPath 
 
cPath:="c:\temp\"
 
if !file(cPath+"Mlabel.dbf")
 
   sayandwait("ЌҐ  ©¤Ґ д ©« Ї® ЇгвЁ "+cPath +" !")
 
else
 
NetUse("NewMlabal",cPath+"Mlabel.dbf")
 
NewMlabal->(dbsetindex(cPath+"Mlabel.cdx"))
 
NewMlabal->(OrdSetFocus("tag_MLABEL"))
 
Mlabel->(OrdSetFocus("Mlabel"))
 
NewMLabal->(DbGotop())
 
Do While NewMlabal->(!eof())
 
Mlabel->(DbGotop())
 
    if Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum))))
 
else
 
 
      mlabel->(RecLOCK())
 
      mlabel->(addrec())
 
   
 
   mlabel->grup:=NewMlabal->grup
 
    mlabel->nnum:=NewMlabal->nnum
 
   
 
   mlabel->(f_dbunlock())
 
   endif
 
NewMlabal->(DBskip())
 
enddo | 	 
  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 14 Nov 2005 09:52    Post subject: Re: Специалистам по FileEval-помогите пожалуйста | 
				     | 
			 
			
				
  | 
			 
			
				 	  | Val wrote: | 	 		  //программа должна проверять наличие записей в номенклатурнике с 
 
//файлом в с:\temp\mlabel.dbf и добавлять отсутствующие
 
//сейчас она их добавляет все (включая уже существующие)
 
 
 
 	  | Code: | 	 		  Do While NewMlabal->(!eof())
 
Mlabel->(DbGotop())
 
    if Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum))))
 
else
 
 
      mlabel->(RecLOCK())
 
      mlabel->(addrec())
 
   
 
   mlabel->grup:=NewMlabal->grup
 
    mlabel->nnum:=NewMlabal->nnum
 
   
 
   mlabel->(f_dbunlock())
 
   endif
 
NewMlabal->(DBskip())
 
enddo | 	 
  | 	  
 
 
 	  | Code: | 	 		  Do While NewMlabal->(!eof())
 
    if !Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum)))
 
        mlabel->(addrec())
 
        mlabel->grup:=NewMlabal->grup
 
                     mlabel->nnum:=NewMlabal->nnum
 
        mlabel->(f_dbunlock())
 
   endif
 
NewMlabal->(DBskip())
 
enddo
 
mlabel->( DBCOMMIT() )
 
 | 	 
  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Val
 
 
  Joined: 21 Jan 2004 Posts: 19 Location: Ц.В.Ю. Occupation: Бухгалтер программист Interests: Москва
  | 
		
			
				 Posted: 15 Nov 2005 01:08    Post subject: изменение не помогло | 
				     | 
			 
			
				
  | 
			 
			
				//изменение не помогло
 
 
//полный текст
 
 
Private cPath 
 
cPath:="c:\temp\"
 
if !file(cPath+"Mlabel.dbf")
 
	sayandwait("¥  ©¤¥ ä ©« ¯® ¯ã⨠"+cPath +" !")
 
else
 
NetUse("NewMlabal",cPath+"Mlabel.dbf")
 
NewMlabal->(dbsetindex(cPath+"Mlabel.cdx"))
 
NewMlabal->(OrdSetFocus("tag_MLABEL"))
 
Mlabel->(OrdSetFocus("Mlabel"))
 
NewMLabal->(DbGotop())
 
Do While NewMlabal->(!eof()) 
 
    if !Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum)))) 
 
        mlabel->(addrec()) 
 
        mlabel->grup:=NewMlabal->grup 
 
                     mlabel->nnum:=NewMlabal->nnum 
 
        mlabel->(f_dbunlock()) 
 
   endif 
 
NewMlabal->(DBskip()) 
 
enddo 
 
mlabel->( DBCOMMIT() ) 
 
endif | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		dmitry
 
  
  Joined: 03 Jan 2002 Posts: 33 Location: Орлов Д.В. Occupation: Элипс-Опт Interests: Москва
  | 
		
			
				 Posted: 15 Nov 2005 02:40    Post subject: Re: Специалистам по FileEval-помогите пожалуйста | 
				     | 
			 
			
				
  | 
			 
			
				 	  | nordk wrote: | 	 		   	  | Code: | 	 		  Do While NewMlabal->(!eof())
 
    if !Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum)))
 
        mlabel->(addrec())
 
        mlabel->grup:=NewMlabal->grup
 
                     mlabel->nnum:=NewMlabal->nnum
 
        mlabel->(f_dbunlock())
 
   endif
 
NewMlabal->(DBskip())
 
enddo
 
mlabel->( DBCOMMIT() )
 
 | 	 
  | 	  
 
Не работает. Константин, а Вы код проверяли перед тем как постить его сюда?
 
Не хватает команды Mlabel->(dbgotop()) после строки Do While NewMlabal->(!eof()), ведь дальше будет поиск, а указатель сам не умеет возвращаться на первую логическую запись.
 
Но при этом наблюдается странная вещь. Если использовать Mlabel->(dbgotop()), то указатель падает за пределы наших записей в Mlabel. Почему?
 
Да и DbSeek почему-то не работает. И все это на демобаз | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 15 Nov 2005 08:43    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Давайте по порядку
 
1. Речь идет про HFileEval или про FileEval ?
 
2. никаких GOTOP() не надо - мы через DBSEEK ищем и вообще работаем с разными алиасами
 
Честно скажу текст не проверял но для HfileEval все написано точно.
 
Работать должно без проблем (нужно только в отладчике убедиться что там где вы используете задачу алиас mlabel существует)
 
В FileEval работать не должно в принципе
 
через := в поле не положить
 
надо делать MLABEL->( FIELDPUT(FIELDPOS("GRUP"),NewMlabal->GRUP) ) | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		dmitry
 
  
  Joined: 03 Jan 2002 Posts: 33 Location: Орлов Д.В. Occupation: Элипс-Опт Interests: Москва
  | 
		
			
				 Posted: 16 Nov 2005 00:56    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | nordk wrote: | 	 		  Давайте по порядку
 
1. Речь идет про HFileEval или про FileEval ? | 	  
 
Все равно. Это слишком простая ситуация, которая должна работать и там и там. Но не работает.
 
 	  | nordk wrote: | 	 		  | 2. никаких GOTOP() не надо - мы через DBSEEK ищем и вообще работаем с разными алиасами | 	  
 
Из NewMlabal мы берем выражение поиска, а ищем в Mlabel. Если я искал и нашел, значит указатель стоит уже не на первой логической записи файла, по которому осуществляется поиск. Он разве сам вернется? Нет. Поэтому я применяю DbGoTop(), чтобы гарантировано начинать поиск с начала.
 
 	  | nordk wrote: | 	 		  
 
Честно скажу текст не проверял но для HfileEval все написано точно.
 
Работать должно без проблем (нужно только в отладчике убедиться что там где вы используете задачу алиас mlabel существует) | 	  
 
А зря. Если бы Вы проверили, мы бы могли быстрее решить проблему.
 
 	  | nordk wrote: | 	 		  
 
В FileEval работать не должно в принципе
 
 | 	  
 
Кто Вам это сказал?
 
 	  | nordk wrote: | 	 		  
 
через := в поле не положить
 
надо делать MLABEL->( FIELDPUT(FIELDPOS("GRUP"),NewMlabal->GRUP) ) | 	  
 
Разве xHarbour не поддерживает стандартную нотацию Клиппера? Откуда такая информация? Мы наверное пользуемся разными источниками, потому что мои говорят, что 
 
 	  | Quote: | 	 		  
 
• Syntax
 
<VariableId> := <Expression>
 
• Description
 
This operator assigns the value of <Expression> (which can be of any data type) to the variable <VariableId> (which can be of any storage class). The expression <Expression> is evaluated and assigned to <VariableId>. 
 
 | 	 
 
  Last edited by dmitry on 16 Nov 2005 01:07; edited 1 time in total | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Val
 
 
  Joined: 21 Jan 2004 Posts: 19 Location: Ц.В.Ю. Occupation: Бухгалтер программист Interests: Москва
  | 
		
			
				 Posted: 16 Nov 2005 00:57    Post subject: ну вот, теперь я уже окончательно запутался | 
				     | 
			 
			
				
  | 
			 
			
				  
 
Private cPath 
 
cPath:="c:\temp\"
 
if !file(cPath+"Mlabel.dbf")
 
 sayandwait("ЌҐ  ©¤Ґ д ©« Ї® ЇгвЁ "+cPath +" !")
 
else
 
NetUse("NewMlabal",cPath+"Mlabel.dbf")
 
NewMlabal->(dbsetindex(cPath+"Mlabel.cdx"))
 
NewMlabal->(OrdSetFocus("MLABEL"))
 
Mlabel->(OrdSetFocus("Mlabel"))
 
NewMLabal->(DbGotop())
 
Do While NewMlabal->(!eof()) 
 
//    Mlabel->(dbgotop())
 
 if !Mlabel->(DbSeek(upper(NewMlabal->(grup+nnum)))) 
 
        mlabel->(addrec()) 
 
        MLABEL->( FIELDPUT(FIELDPOS("GRUP"),NewMlabal->GRUP) )
 
 MLABEL->( FIELDPUT(FIELDPOS("nnum"),NewMlabal->nnum) )
 
// mlabel->grup:=NewMlabal->grup 
 
//                     mlabel->nnum:=NewMlabal->nnum 
 
        mlabel->(f_dbunlock()) 
 
   endif 
 
NewMlabal->(DBskip()) 
 
enddo 
 
endif
 
mlabel->( DBCOMMIT() ) 
 
 
Компиляция в HFileEval прошла без ошибок, подключил файл в товары в номенклатурник. Результат такой же как и в FileEval (записи в номенклатурник попадают все)
 
Подскажите плиз что я делаю не правиль | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Яков
 
  
  Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
  | 
		
			
				 Posted: 16 Nov 2005 07:24    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Делаю на фоксе что-то похожее со справочником партнеров через буфер.
 
ТАК:
 
 	  | Code: | 	 		  SET DELETED on
 
copy file H:\BEST2005\pal_2005\partner.DBF to  D:\BESTBUH4\PAL_2005\part.DBF
 
USE D:\BESTBUH4\PAL_2005\part.DBF in 2
 
USE D:\BESTBUH4\PAL_2005\partner.DBF in 1
 
 
SELECT 1  
 
SCAN  
 
   SELECT 2
 
   LOCATE FOR  (part.code=partner.code)
 
    DO WHILE FOUND()
 
    delete
 
    CONTINUE
 
    ENDDO
 
select 1
 
ENDSCAN
 
close database
 
USE D:\BESTBUH4\PAL_2005\part.DBF
 
pack
 
close database 
 
quit | 	  
 
Затем получившийся буфер после обработки добавляю appendom | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 16 Nov 2005 09:24    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | dmitry wrote: | 	 		   	  | nordk wrote: | 	 		  Давайте по порядку
 
1. Речь идет про HFileEval или про FileEval ? | 	  
 
Все равно. Это слишком простая ситуация, которая должна работать и там и там. Но не работает. | 	  
 
 
Дело не в ситуации. FileEval это очень притянутая за уши досовская платформа. И она не может работать просто. Поэтому написание и там и там абсолютное разное по способам решения и в мелочах.
 
И еще FileEval имеет свойство прекращать работу на середине если что-то ему не нравится и говорить Вам что все выполнено и Вам нужно в рукопашную искать точку проблемы, а Вы на ровном месте начинаете делать выводы что все не работает на абсолютно правильном алгоритме, а всего-то где-то синтаксис не тот и все.
 
Поэтому я и говорю везде переход на харбор это ОЧЕНЬ ВАЖНО
 
 
 
 	  | Quote: | 	 		  2. никаких GOTOP() не надо - мы через DBSEEK ищем и вообще работаем с разными алиасами
 
Из NewMlabal мы берем выражение поиска, а ищем в Mlabel. Если я искал и нашел, значит указатель стоит уже не на первой логической записи файла, по которому осуществляется поиск. Он разве сам вернется? Нет. Поэтому я применяю DbGoTop(), чтобы гарантировано начинать поиск с начала.
 
 | 	  
 
Извините но здесь Вы не понимаете функцию DBSEEK()
 
Она всегда ищет сначала и всегда встает на первую найденную - не надо думать что она начинает искать с места нахождения курсора.
 
Так что Ваше гарантированно - масло масленное 
 
 
 	  | Quote: | 	 		  
 
Честно скажу текст не проверял но для HfileEval все написано точно.
 
Работать должно без проблем (нужно только в отладчике убедиться что там где вы используете задачу алиас mlabel существует)
 
А зря. Если бы Вы проверили, мы бы могли быстрее решить проблему.
 
 | 	  
 
Ну вобщем-то у меня тоже есть еще и другие обязанности. Здесь я
 
помогаю по мере возможности. Стараюсь чаще как могу и написал
 
так из двух соображений 
 
1.Научить пользоваться инструментом и не зависить от своевременности консультации впредь в таких вопросах
 
2.Совместный диалог посмотрите и скажите что не получилось в данный момент быстрее. Вопросов много задают и вопросы есть очень сложные, которые надо в текстах долго выискивать - всем надо помочь
 
 
 	  | Quote: | 	 		  
 
В FileEval работать не должно в принципе
 
 
Кто Вам это сказал?
 
 | 	  
 
Мой многолетний опыт применения этого FileEval - целый модуль на нем написан тексты приличных размеров отладить это наверно что-то значит ?
 
 
 	  | Quote: | 	 		  
 
через := в поле не положить
 
надо делать MLABEL->( FIELDPUT(FIELDPOS("GRUP"),NewMlabal->GRUP) )
 
Разве xHarbour не поддерживает стандартную нотацию Клиппера? Откуда такая информация? Мы наверное пользуемся разными источниками, потому что мои говорят, что 
 
 | 	  
 
Еще раз повторяю или перечитайте выше в харборе работает а в FileEval нет - потому что он не харбор.
 
КОгда задаете вопрос очень важно на чем делаете FileEval или HFileEval - разница огромн | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 16 Nov 2005 09:41    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Для Val
 
Извините за задержку - вчера целый день были важные переговоры.
 
Отлично сделали.
 
Теперь в заголовок программы давайте добавим ALTD() и откомпилируем с отладчиком.
 
Дальше давайте пойдем отладчиком по строкам нажимая на кнопку F8
 
и по движению периодически заглядывайте в таблицы mlabel и NewMlabal
 
Вы все увидите как на ладони. Если что будет непонятно - сразу напишите.
 
и еще уберите плз
 
NewMlabal->(dbsetindex(cPath+"Mlabel.cdx")) 
 
в отладчике вы увидите что он и так уже с индексом открывает таблицу
 
Здесь для харбора лучше не так
 
DbSeek(upper(NewMlabal->(grup+nnum)))
 
а DBSEEK(UPPER(NewMlabal->GRUP+NewMlabal->NNUM)) правильнее просто но и та строка вполне возможно отрабатывает корректно и
 
попробуем изменить
 
NetUse("NewMlabal",cPath+"Mlabel.dbf",,.F.) | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 16 Nov 2005 09:47    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Для Якова
 
 
Каждый волен писать на чем угодно, но здесь мы учимся пользоваться харбором и я считаю это правильнее потому что
 
это встроенный механизм и буферы ему не нужны. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Яков
 
  
  Joined: 04 Mar 2002 Posts: 618 Location: Яков Occupation: Экстремальная терапия бизнеса Interests: Владивосток
  | 
		
			
				 Posted: 16 Nov 2005 11:19    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | nordk wrote: | 	 		  Каждый волен писать на чем угодно, но здесь мы учимся пользоваться харбором и я считаю это правильнее потому что
 
это встроенный механизм и буферы ему не нужны. | 	  
 
Да я не против.
 
Просто на данном примере я предложил немного другой алгоритм, 
 
который можно реализовать на любом инструменте, 
 
который как мне кажется будет работать быстрее.
 
А инструмент конечной реализации каждый выбирает сам.
 
И буферы тут ни при чем. | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		shura_k
 
 
  Joined: 10 Oct 2003 Posts: 342 Location: Александр Occupation: Специалист Interests: Калининград
  | 
		
			
				 Posted: 16 Nov 2005 11:40    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				Работает на 100%  
 
 	  | Quote: | 	 		  
 
  Private cAlias,aStru
 
 
  if type('aPars')!='A' 
 
   exit()  
 
  endif
 
 
  if len(aPars)==0
 
   exit()  
 
  endif
 
 
  cAlias:=SELECT()
 
 
//Save
 
 if aPars[1]==1
 
  dbSelectArea("mlabel")
 
  dbpush()
 
  mlabel->(ordsetfocus("MLABEL"))
 
  mlabel->(dbGoTop())
 
  aStru:=DBSTRUCT()
 
  if !FILE("exchange\copynnum.dbf")
 
   dbCreate("exchange\copynnum.dbf", aStru)
 
  endif
 
  dbCreate( "exchange\nnum.dbf", aStru)
 
  NETUSE("nnum","exchange\nnum",,.F.)
 
  NETUSE("copy","exchange\copynnum",,.F.)
 
  copy->(ordcreate("exchange\copynnum","copynnum","UPPER(GRUP+NNUM+NAME+STR(CENA)+STR(OCENA1)+STR(OCENA2)+STR(OCENA3)+STR(OCENA4)+STR(VCENA1)+STR(VCENA2)+STR(VCENA3)+STR(VCENA4))"))
 
  nnum->(ordcreate("exchange\nnum","nnum","UPPER(GRUP+NNUM)"))
 
  While(mlabel->(!EOF()))
 
   IF !copy->(DBSEEK(mlabel->(UPPER(GRUP+NNUM+NAME+STR(CENA)+STR(OCENA1)+STR(OCENA2)+STR(OCENA3)+STR(OCENA4)+STR(VCENA1)+STR(VCENA2)+STR(VCENA3)+STR(VCENA4))))) 
 
     nnum->(AddRec())
 
     nnum->(Gather(mlabel->(Scatter())))
 
     nnum->(DbUnLock())
 
   endif
 
   mlabel->(dbSkip())
 
  EndDo
 
 
  mlabel->(dbGoTop())
 
  While(mlabel->(!EOF()))
 
   IF !copy->(DBSEEK(mlabel->(UPPER(grup+nnum)))) 
 
    copy->(AddRec())
 
   else
 
    copy->(RecLock())
 
   endif
 
   copy->(Gather(mlabel->(Scatter())))
 
   copy->(DbUnLock())
 
   mlabel->(dbSkip())
 
  EndDo
 
 
  copy->(dbCloseArea())
 
  nnum->(dbCloseArea())
 
  dbpop()
 
 
 endif 
 
 
// Load
 
 if aPars[1]==2
 
 
  if !FILE("exchange\nnum.dbf")
 
   return
 
  endif
 
 
  dbSelectArea("mlabel")
 
  dbpush()
 
  mlabel->(ordsetfocus("MLABEL"))
 
  mlabel->(dbGoTop())
 
  NETUSE("nnum","exchange\nnum",,.F.)
 
  nnum->(ordcreate("exchange\nnum","nnum","UPPER(GRUP+NNUM)"))
 
  nnum->(dbGoTop())
 
  While(nnum->(!EOF()))
 
   IF !mlabel->(DBSEEK(nnum->(UPPER(grup+nnum)))) 
 
    mlabel->(AddRec())
 
   else
 
    mlabel->(RecLock())
 
   endif
 
   mlabel->(Gather(nnum->(Scatter())))
 
   mlabel->(DbUnLock())
 
   nnum->(dbSkip())
 
  EndDo
 
 
  nnum->(dbCloseArea())
 
  dbpop()
 
 endif 
 
 
  dbSelectArea(cAlias)
 
 | 	 
  | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		nordk
 
 
  Joined: 27 Jun 2005 Posts: 1000 Location: Горбунов Константин Occupation: БЭСТ-Партнер Interests: СПб
  | 
		
			
				 Posted: 16 Nov 2005 14:03    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | ЯКОВ wrote: | 	 		  Просто на данном примере я предложил немного другой алгоритм, 
 
который можно реализовать на любом инструменте, 
 
который как мне кажется будет работать быстрее.
 
А инструмент конечной реализации каждый выбирает сам.
 
 | 	  
 
 
Поиска быстрее чем по индексу нет. Полагаю Ваше мнение ошибочным
 
Хотя в плане поиска фокс самый быстрый язык и возможно тут есть правда - но в харборе извините не согласен. Это лично мое мнение | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		Олег Смирнов
 
 
  Joined: 06 Sep 2004 Posts: 821 Location: Олег Смирнов Occupation: Раут (поганист-сисадмин) Interests: Новосибирск
  | 
		
			
				 Posted: 16 Nov 2005 18:24    Post subject:  | 
				     | 
			 
			
				
  | 
			 
			
				 	  | ЯКОВ wrote: | 	 		  
 
 	  | Code: | 	 		  
 
...
 
USE D:\BESTBUH4\PAL_2005\part.DBF ORDER CODE in 2
 
...
 
   SEEK UPPER(partner.code)  | 	  
 
 | 	  
 
В таком виде будет работать быстрее. Locate - вполне дебильная функция для поиска чего-то, что не учавствует ни в каком индексе. Тупо ищет полным перебором с самого начала файл _________________ С уважением, Олег Р. Смирн | 
			 
		  | 
	
	
		| Back to top | 
		 | 
	
	
		  | 
	
	
		 |