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

Вниз

Индексы для DBF   Найти похожие ветки 

 
Patrick ©   (2003-09-29 08:28) [0]

Посоветуйте, пожалуйста, какие компоненты лучше применять для доступа к DBF, причем необходима поддержка индексов Clipper"а (*.NTX), ибо создавать свои как-то затруднительно (Exclusive) в положении false. Таблица постоянно кем-то открыта.


 
sniknik ©   (2003-09-29 08:39) [1]

Halcyon, сам пользуюсь именно изза Clipper и (*.NTX)
http://www.vodonosov.newmail.ru/develop/develop.htm
(есть и другие, этот мне больше нравится, есть исходники полностью на дельфях можно исправлять, хотя он немного тормознее других именно изза этого)


 
Patrick ©   (2003-09-29 08:52) [2]

Премного благодарен.


 
Ильш ©   (2003-09-30 09:28) [3]

А есть еще Merant !!! И тоже неплох !!!


 
Patrick ©   (2003-09-30 16:08) [4]

Попробовал Halcyon, один вопрос как искать по составному индексу
например
HalcyonDataset1.IndexOn(...,"FirstName+SecondName+LasName",...)
то каким образом
HalcyonDataSet1.FindKey(?),
пробовал и HalcyonDataSet1.FindKey([Value1+Value2+Value3]) и
HalcyonDataSet1.FindKey([Value1,Value2,Value3]) (хотя так неправильно), всё равно не получается.


 
sniknik ©   (2003-09-30 16:27) [5]

есть свой метод Find, скачай help по нему (Halcyon, там же, либо по ссылке, очень поможет).


 
Patrick ©   (2003-09-30 17:55) [6]

Find также пробовал, я почти уверен в том, что
IndexOn(...,"Firstname+SecondName+Lastname",...) не делает ALLTRIM каждого поля, но почему-то
IndexOn(...,"ALLTRIM(Firstname)+ALLTRIM(SecondName)+ALLTRIM(Lastname)",...) что-то ругается относительно длины строки выражения, странно.


 
sniknik ©   (2003-09-30 18:07) [7]

создание составного индекса

if not FileExists(BaseDir+"\DiscCrd.Ntx") then
try
AddLog("Переиндексация таблици DiscCli.Dbf", FileIndexShow);
TDest.Active:= False;
TDest.TableName:= "DiscCli.Dbf";
TDest.Active:= True;
TDest.IndexOn(BaseDir+"\DiscCrd.Ntx", "", "PADR(STR(Type,3,0),3) + PADR(CODE,25) + STR(GR1,6,0) + STR(GR2,6,0) + STR(GR3,6,0) + STR(GR4,6,0) + STR(GR5,6,0)", "", Duplicates, Ascending);
TDest.Active:= False;
except
on E: EDataBaseError do DoIfError(E.Message);
else DoIfError("Неизвестная ошибка!");
end;


использование

TDest.IndexFileInclude(PDest+"\DiscCrd.Ntx");
TDest.IndexName:= "DISCCRD";
TDest.First;
UpEdit:= 0;
UpAdd:= 0;
while not TSour.Eof do begin
st:= TSour.Fields[MasT2[1]].AsString;
if st[1] = "!" then while length(st) < 25 do st:= st+"Z"
else st:= Copy(St, 1, CutDiscontLength)+StringOfChar(" ", 25-CutDiscontLength);

if TDest.Find(" 4"+st+" 0 0 0 0 0" , True, False) then begin
TDest.Edit;
UpEdit:= UpEdit+ 1;
end else begin
TDest.Append;
UpAdd:= UpAdd+ 1;
end;
....


p.s. скачай хелп.


 
Patrick ©   (2003-09-30 18:14) [8]

Спасибо



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

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

Наверх




Память: 0.48 MB
Время: 0.015 c
14-74447
Orion2
2003-10-03 16:52
2003.10.23
Люди сами не знают чего хотят


1-74131
JibSkeart
2003-10-11 11:00
2003.10.23
TTreeView сохранение и загрузка дерева. как можно реализовать ?


1-74265
Dmitriy M. Volkov
2003-10-11 15:24
2003.10.23
Windows startup


1-74278
Le!
2003-10-13 08:10
2003.10.23
Народ помогите с простым вопросом!


3-73987
sash2
2003-10-01 09:17
2003.10.23
Как перенести данные?