Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Вниз

индексация бызы FoxPro   Найти похожие ветки 

 
Серж   (2001-12-05 06:13) [0]

Как программно проиндексировать бызу данных формата FoxPro ничего не получается ни через TTable ни через SQL?


 
panov   (2001-12-05 07:02) [1]

Индексирую таблицы.
Если у тебя VFP - то можешь не напрягаться.

Если просто FOXPRO, то формируешь в TQuery.SQL
INDEX ON <имя индекса> ON <имя таблицы>(<имя поля>)


 
Серж   (2001-12-06 04:00) [2]

Просто FoxPro, но после выполнения того что Вы написали вылезает сообщение
Invalid use of keyword. Token INDEX

Если делать оператором
CREATE INDEX индекс ON база (поле,...)
вылазит сообщение
Invalid index descriptor
File or directory does not exist
File: база.CDX
Index does not exist
File база.MDX


 
Серж   (2001-12-06 04:07) [3]

Необходимо программно создать УНИКАЛЬНЫЙ индекс по нескольким полям!


 
Dick Gonsales   (2001-12-06 07:09) [4]

Это описано в help BDE а не в справке Delphi, (dbiAddIndex, IDXDesc)
Там написано какие параметры надо использовать (их там много,
но реально тебе нужны штуки 4-5 типа формат базы, уникальность, тэг ...)

if TQurey - CREATE INDEX then
Он для dbf создаст индекс *.mdx а не *.cdx т.к. считает
его dBase а не Fox. Если индекс есть он его не грохнет
а выдаст ошибку

А вообще тут есть определенная лажа. Delphi создает старый cdx индекс,
(если через TTable)
который чуть ли ни в два раза больше чем родной fox 2.0 & >. И если его
reindex из Delphi он его тоже превратить в старый формат.
Возможно будет лучше написать реиндексацию или создание индекса
в fox и запускать отдельно это приложение из Delphi?

Эта процедура создает индекс, в uses прибавить BDE
==========================
procedure fDbiAddIndex4(Tbl: TTable);

var
NewIndex: IDXDesc;
begin
NewIndex.szTagName := "NewIndex1";
NewIndex.bPrimary := False;
NewIndex.bUnique := True;
NewIndex.bDescending := False;
NewIndex.bMaintained := True;
NewIndex.bSubset := False;
NewIndex.bExpIdx := False;
NewIndex.iFldsInKey := 1;
NewIndex.aiKeyFld[0] := 2;
NewIndex.szKeyExp := "";
NewIndex.szKeyCond := "";

NewIndex.bCaseInsensitive := False;
NewIndex.iBlockSize := 0;
Check(DbiAddIndex(Tbl.dbhandle, Tbl.handle, PChar(Tbl.TableName),
szFoxPro, NewIndex, nil));
end;
==============================



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

Форум: "Базы";
Текущий архив: 2002.01.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.012 c
1-22161
Егор Булычев
2001-12-19 22:13
2002.01.08
Memo хелп!


1-22173
Petyun
2001-12-20 19:33
2002.01.08
Установка компонент


4-22482
PONTIY
2001-11-01 10:06
2002.01.08
WinExec или ShellExecute


1-22020
Leo^Sun
2001-12-18 07:08
2002.01.08
TMemo


14-22401
wHammer
2001-11-09 12:56
2002.01.08
Вот интересно стало?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский