Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.18;
Скачать: CL | DM;

Вниз

На работает NTX индех в Halcyon   Найти похожие ветки 

 
Pharm2   (2002-06-25 11:05) [0]

Специалисты, пожалуйста подскажите!
Есть dbf с ntx индексами. При попытке указать
в Halcyon простой индекс из одного поля проблем
нет, но когда индекс выглядит например так
"(subs(naim_medt,1,25))"
выдается сообщение "There is no function for имя базы", это как нибудь поправимо?
VKDBF тоже ругается "TVKNTXIndex.Open: Open error "имя ntx файла""
И еще подскажите нет ли где FAQа или просто документашки какой по Halcyon кроме хелпа.


 
sniknik ©   (2002-06-25 12:02) [1]

Ха! не один я нарвался, приятно. Посмотри мою ветку может поможет.
http://delphi.mastak.com/cgi-bin/forum.pl?look=1&id=1024577633&n=1


 
sniknik ©   (2002-06-25 12:09) [2]

P.S. функции subs там нет есть только SUBSTR что именно нужно? функции описаны в модуле gs6_fctn для 6-делфи для 5-го наверно в gs5_fctn.


 
Pharm2   (2002-06-25 12:37) [3]



> sniknik © (25.06.02 12:09)
> P.S. функции subs там нет есть только SUBSTR что именно
> нужно? функции описаны в модуле gs6_fctn для 6-делфи для
> 5-го наверно в gs5_fctn.

В ntx файле написано именно subs, писал не я дасталось по наследству :(


 
sniknik ©   (2002-06-25 13:06) [4]

Я решил свою проблему кнопкой F7 - долго и упорно трассировал исходники пока не нашол место где можно исправть.

Тебе нужно исправить название функции в массиве функций (есть иам такой с адресами соотв. функций) на нужное имя и тогда он его поймет, если уж нужно сохранить оригинальный индекс. Где он лежит не знаю встречал только по ходу трассировки, возможно и динамически формируется тогда сложнее надо искать место где.

Проще будет поменять функцию в индексе, если нельзя готовься к долгой и нудной работе (пивом запасись :-) т.к. никто ее за тебя делать не станет.


 
Pharm2   (2002-06-25 13:50) [5]

> Тебе нужно исправить название функции в массиве функций
> (есть иам такой с адресами соотв. функций) на нужное имя
> и тогда он его поймет, если уж нужно сохранить оригинальный
> индекс. Где он лежит не знаю встречал только по ходу трассировки,
> возможно и динамически формируется тогда сложнее надо искать
> место где.
Я попробовал в gs6_fctn дописать Subs как Substr и Ltri как стандартный Ltrim но все бесполезно у меня даже str стандартный не работает :( хотя в gs6_fctn он описан.
Или мы говорим про разные вещи, тогда поподробнее что за массив функций и где его искать при трассировке


 
sniknik ©   (2002-06-25 14:33) [6]

модуль gs6_sql

процедура
TgsExpFunction.Create(AOwner: TgsExpHandler; const AValue: gsUTFString);

Поиск на соответствие функции, ExpStr - здесь имя функции
while (i < GSFunctionRegistry.Count) and
(GSFunctionRegistry.FunctionName(i) <> ExpStr) do
inc(i);

а это выдается если не находит
raise EHalcyonExpression.CreateFMT(gsErrNoSuchFunction,[ExpStr]);

простым дописыванием ничего не добьешся надо еще связку установить. а если чегонибудь изменяеш то помни это компонент его надо перекомпилить чтобы заработало.


 
Pharm2   (2002-06-26 08:07) [7]

С этим разобрался, большое спасибо, хотя сделал немного не так.
Тут теперь другая проблема в индексе написано например
"ASMTO->(subs(str(kfg,10),8,3))+ASMTO->(subs(naim_medt,1,25))"
А Halcyon это переводит в
"ASMTO.(subs(str(kfg,10),8,3))+ASMTO.(subs(naim_medt,1,25))
и сам же ругается на такой формат, ну да ладно принцип понятен буду дальше исправлять, еще раз спасибо



Страницы: 1 вся ветка

Текущий архив: 2002.07.18;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.009 c
1-58199
Rock
2002-07-06 00:32
2002.07.18
TImage


3-57938
Weare
2002-06-25 13:12
2002.07.18
Проблема при открытии таблиц.


1-58108
Question
2002-07-08 18:13
2002.07.18
screen.Datamodulecount


1-58208
^Sanya
2002-07-07 01:10
2002.07.18
D6->D5


1-58193
iMAGO
2002-07-06 12:22
2002.07.18
XP PANEL