Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
1-58226
Alex
2002-07-07 18:56
2002.07.18
DLL


1-58060
werr
2002-07-05 17:04
2002.07.18
Как узнать каким юзером занят файл?


3-57959
Андрусь
2002-06-25 11:27
2002.07.18
Сохранение настроек в базе


4-58360
cult
2002-05-17 17:04
2002.07.18
Системный таймер


6-58237
Vlad___
2002-05-08 11:20
2002.07.18
HTTP Proxy + собственный протокол





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский