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

Вниз

Построение индекса CDX-файла . HELP!   Найти похожие ветки 

 
nic418 ©   (2002-08-16 10:22) [0]

Задача в следующем: В связи с переходом с FoxPro на SQL2000, ведётся таблица в SQL, а Dbf-файл поддерживается автоматически. Нужно обеспечить восстановление Dbf&Cdx-файлов по SQL, в т.ч. и восстанавливать индексы.
Реализуется в D5 через BDE -> AddIndex. Типа
TabDbf.AddIndex("ALFA", "SUBSTR(KPROC,1,1)+ALFA+KODP", [ixExpression]);
мне же надо построить индекс, который бы Фокс понимал как
TAG = ALFA и Index expr KODP & Index filter: PPL="1".
(это эквивалентно Select ...From ... Where PPL="1" имеющий индекс KODP

Это реализовано в Apollo и Halcyon , но обработка Dbf через BDE сделана еже файлов для 50 и переходить ... труба.
Если подскажите - буду благодарен.
Николай kivc406@mail.ru or golubyh@ahxk.ru


 
Mike Kouzmine   (2002-08-16 10:27) [1]

>Это реализовано в Apollo и Halcyon , но обработка Dbf через BDE сделана еже файлов для 50 и переходить ... труба.
Не совсем понял


 
sniknik ©   (2002-08-16 10:34) [2]

попробуй в BdeAdmine у драйвера dBase LEVEL = 25 установить.
не факт что получится, у меня работало (совместимость с FoxPro 2.5 doc) но на здесь на форуме после такого моего ответа говорили не получалось.
скорее всего пытались с более поздними версиями фокса стыковатся, если у тебя с твоим не получится сразу бросай и переходи на Halcyon.
выдержка из хелпа
Type of table format used to create dBASE tables. Can be 7 for dBASE 7.0 table format, 5 for dBASE 5.0 table format, 4 for dBASE 4.0 table format, or 3 for dBASE III and dBASE III PLUS table formats. Use 25 for FoxPro. Default: 7


 
nic418 ©   (2002-08-16 10:53) [3]

snicnic
Если не трудно, брось на мыло синтаксис соотв-го AddIndex
Mike Kouzmin
Имел в веду, что в комплексе ~ 50 обрабатываемых SQL2000 таблиц с соответствующим сервисом(восстановление CDX-файлов)- всё через BDE.


 
sniknik ©   (2002-08-16 11:50) [4]

никогда не пользовался AddIndex по крайней мере после того как узнал о замечательной SQL команде CREATE INDEX (не относится к Halcyon и др.комп. не имеющим SQL).
попробуй так гораздо проще и в больщинстве случаев быстрей.
тебе не надо ничего переделывать надо попробовать, установка LEVEL = 25 должна заставить твой код генерить CDX индексы. проверь на совместимость и дальше решай ...

не перевирай ники, могут обидется.


 
nic418 ©   (2002-08-16 12:00) [5]

sniknik
Извини за ошибку в ник-е.
Может быть бросишь CREATE INDEX для моего случая(ни разу не использовал). Lev=25 стоит.
Спасибо


 
sniknik ©   (2002-08-16 21:05) [6]

у тебя основная проблема в том чтобы составной индекс сделать? похоже. В Local SQL вроде не позволяется, я покопался в старом коде нашол процедуру которой делал так (оказалось очень и очень редко) в общем вот почти один в один из хелпа по Dbi

procedure MyDbiAddIndex(Tbl: TTable; sTag: DBINAME; sIndex: DBIKEYEXP);
var
NewIndex: IDXDesc;
begin
if not Tbl.Active then Tbl.Open;

NewIndex.szTagName := sTag;
NewIndex.bPrimary := False;
NewIndex.bUnique := False;
NewIndex.bDescending := False;
NewIndex.bMaintained := True;
NewIndex.bSubset := False;
NewIndex.bExpIdx := True;
NewIndex.iFldsInKey := 1;
NewIndex.aiKeyFld[0] := 2;
NewIndex.szKeyExp := sIndex;
NewIndex.szKeyCond := "";
NewIndex.bCaseInsensitive := False;
NewIndex.iBlockSize := 0;

Check(DbiAddIndex(Tbl.dbhandle, Tbl.handle, PChar(Tbl.TableName),
szFOXPRO, NewIndex, nil));
end;
ну в общем должон разобратся.
p.s. cory за задержку почту тока дома проверил.

на случай если не дошла.....


 
sniknik ©   (2002-08-16 21:09) [7]

Б-дь и точно не дошла третий раз рамблер чертов отказ дает.

ладно заодно тебе пример вызова хотя это и не сложно
MyDbiAddIndex(Table1, "ALFA", "SUBSTR(KPROC,1,1)+ALFA+KODP");


 
elv ©   (2002-08-17 13:39) [8]

Не могу сослаться на источник, не помню, но ч-з BDE не стоит работать с cdx. Особенно если cdx содержит выражения.


 
Desdechado ©   (2002-08-17 19:03) [9]

во-во. с фоксом только на чтение. источник - Borland.



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

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

Наверх




Память: 0.49 MB
Время: 0.017 c
14-14247
^Sanya
2002-08-11 00:31
2002.09.05
Glyphs: ЗА И ПРОТИВ.


3-13926
bobr12
2002-08-15 12:32
2002.09.05
Как поставить на машину BDE?


1-14058
nh
2002-08-23 11:45
2002.09.05
RXLib


7-14310
kerrik
2002-06-27 00:13
2002.09.05
Как выключить компьютер под Win2000 (NT,XP)


1-14063
Danco
2002-08-24 18:52
2002.09.05
Использование PrintDialog