![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вторичные индексы.
Sergey-ZZZ © (2002-04-15 11:08:00)Создаю таблицу программно не из Datebase Desktop. Не могу добавить вторичный индекс. Через Desktop все понятно, а здесь выдает не то что хочу. Вот мой кусок кода
{Создание базы по товарам}
if TableForCrate=nil then
TableForCrate := TTable.Create(nil);
with TableForCrate do
begin
DatabaseName:="Sklad";
TableName:= Form1.SaveDialog1.FileName + "Tov";
TableType:=ttParadox;
with FieldDefs do {Создать поля в базе }
begin
Add("CodTov", ftAutoInc, 0, false); {Код товара}
Add("Name", ftString, 25, false); {Наименование товара}
Add("GrupID", ftInteger, 0, false); {Категория товара}
Add("EdIzm", ftString, 15, false); {Еденица измерения}
Add("Upak", ftString, 25, false); {Упаковка}
Add("Netto", ftFloat, 0, false); {Нетто}
Add("Brutto", ftFloat, 0, false); {Брутто}
// Add("Gabar", ftString, 25, false); {Габариты}
Add("Proizv", ftString, 25, false); {Производитель}
Add("DateIzg", ftDate, 0, false); {Дата изготовления}
Add("DateReal", ftDate, 0, false); {Дата реализации}
Add("Cena", ftCurrency, 0, false); {Цена}
Add("Prim", ftString, 40, false); {Примечания}
end;
with IndexDefs do
begin
Add("","CodTov",[ixPrimary]);
end;
CreateTable;
{Добавляем вторичный индекс}
{Здесь мне нужно Maintained, но не получается}
AddIndex("GrupID", "GrupID", [ixNonMaintained]);
Close;
end;
if TableForCrate<>nil then
TableForCrate.Free;
TableForCrate := nil;
Sergey-ZZZ (2002-04-15 11:27:00) [1]Это единственное которое не ругнулось, в остальных случаях индекс не создается. В дальнейшем для связывания полей двух таблиц Master-Deteil нужен вторичный индекс не NonMaintained.
Мне нужно не через SQL.
Anatoly Podgoretsky (2002-04-15 11:20:00) [2]Sergey-ZZZ © (15.04.02 11:08)
Не ясно что хочешь и что не работает?
AddIndex("GrupID", "GrupID", []);
VAleksey (2002-04-15 11:13:00) [3]1) А зачем тогда указываешь ixNonMaintained если тебе нужен Maintained ?
2) Имя поля = Имя индекса ? Может здесь заморочка ?
3) Попробуй воспользоваться конструкцией SQL - CREATE INDEX