Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > проблемы с TTable.FindKey


Автор: KiSH333 15.1.2009, 09:31
Привет всем.
Есть такая проблема, у меня был пойск FindKey по группе полей, возниела необходимось в этот поиск добавить новое поле Discount.

Вот создание моей таблицы где я зоздаю ключ поиска

Код

TbSP5 := TTable.Create(nil);
    with TbSP5 do begin
      DatabaseName := TmpDir;
      TableName := 'SP5.db';
      AddIndex('IPrimary', 'PVagon;PPlace;PLiter;IndexIzd;SubIndexIzd;KindDeliver;KindPodp;Discount',
        [ixPrimary]);
      AddIndex('ISetOrder', 'FKey;NameIzd', [ixCaseInsensitive]);
      IndexName := '';
      Open;
    end;


Но проблема в том что в строке где я добавляю индекс IPrimary возникает ошибка Number is out of Range...

У кого были подобные трудности просьба ответить и дать совет...

Автор: Akella 15.1.2009, 11:55
а без Discount код работает?

Автор: Deniz 15.1.2009, 12:53
KiSH333, а почему именно [ixPrimary]?
Возможно ограничение на суммарную длину полей.
Искать можно по Locate (не помню есть он в TTable)

Автор: KiSH333 15.1.2009, 13:03
Цитата(Akella @  15.1.2009,  11:55 Найти цитируемый пост)
а без Discount код работает?

да без Discount все работает.

Добавлено через 1 минуту и 56 секунд
Цитата(Deniz @  15.1.2009,  12:53 Найти цитируемый пост)
Искать можно по Locate (не помню есть он в TTable)

я слышал он медленный для большого объема данных. И тем более через FindKey до меня было сделано, я так сказать прогу в наследство получил))

Добавлено через 4 минуты и 12 секунд
Цитата(Deniz @  15.1.2009,  12:53 Найти цитируемый пост)
а почему именно [ixPrimary]?Возможно ограничение на суммарную длину полей.

я тож об этом думал, и ограничение есть, но я ради эксперимента удалял пару полей и вставлял одно Discount, но все равно эта ж ошибка :-(

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)