Форум: "Базы";
Текущий архив: 2002.07.18;
Скачать: [xml.tar.bz2];
ВнизНа работает 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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.007 c