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

Вниз

DBase-как программно создать индекс?   Найти похожие ветки 

 
kserg@ukr.net   (2002-03-18 10:52) [0]

Впервые сталкнулся с DBase-пытаюсь создать программно индекс
через SQL-компанент, в ответ получаю ошибку TABLE LEVEL CHANGED.
Чтобы это означало?


 
sniknik ©   (2002-03-18 10:57) [1]

Неплохо было бы еще на код взглянуть (SQL) дающий ошибку. Как предположение, ты создаеш главный индекс (Primary) а он уже есть.


 
kserg@ukr.net   (2002-03-18 11:11) [2]

Через TTable.AddIndex я не понял как создать новый индекс,
поэтому стал пытаться через SQL

QUERY1.close;
QUERY1.sql.String[0]:="create index NMat on Postav NMAT";
QUERY1.ExecSQL;

Синтаксис классический, но вот впервые встретил понятие TABLE LEVEL. В хэлпе что-то про уровень есть, но я так и не понял.

dBASE tables only support primary indexes and true unique indexes when the table level is 7 or higher (concurrent with Visual dBASE 7). dBASE tables do not support case-insensitive or descending indexes at all. Use the ixExpression constant when the index is based on multiple fields or uses dBASE data manipulation language functions (that is, for expression indexes). Multi-field dBASE indexes cannot be created simply with a list of field names (separated by semi-colons) in the Fields parameter of AddIndex. The ixExpression constant is only applicable to dBASE tables.



 
gek   (2002-03-18 11:15) [3]


with CustomerData do
try
begin
StringList:=TStringList.Create;
Table_main.GetIndexNames(StringList);// получаем все индексы
Tbl_Main_ex.mastersource:=nil;
DataSource_main.dataSet:=nil;
Table_main.Active:=false;
Table_main.Exclusive:=true;
if not Table_main.Exclusive then
raise exception.Create("таблица должна быть открыта для эксклюзивного "+
"использования");
if StringList.IndexOf("indx_address")= - 1 then // нет такого индекса
Table_main.AddIndex("indx_address","Address", [],"Address"); // добавим
end;
finally
Table_main.Exclusive:=false;
DataSource_main.dataSet:=Table_main;
Table_main.Active:=true;
Tbl_Main_ex.mastersource:=DataSource_Main;
StringList.free;
end;



 
deleon   (2002-03-18 13:33) [4]

create index IDX_NMat on Postav(NMAT)



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

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

Наверх




Память: 0.47 MB
Время: 0.013 c
14-22816
QueenOfRain
2002-02-26 10:51
2002.04.08
Трепаться, так и об этом тоже....


1-22671
Fredericco
2002-03-28 12:23
2002.04.08
Вопрос, наверно, ламерский, но сам я его не решил.


1-22699
SPeter
2002-03-26 16:57
2002.04.08
Как работать со свойством Shift:TShiftState.


1-22609
Well
2002-03-25 09:52
2002.04.08
Работа с TImage


1-22653
Chistyakov Victor
2002-03-28 10:42
2002.04.08
Delphi&Word