Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вставка записи в таблицу в определённое место, помогите / 3 сообщений из 3, страница 1 из 1
01.10.2002, 12:31
    #32054361
olberd
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка записи в таблицу в определённое место, помогите
В индексированной таблице Paradox нужно вставить запись в определённое место. После команды tbl->Insert() запись сортируется согласно сортировки индекса и улетает.
Подскажите, есть ли база в которой можно вставить запись только командой Insert()? Или как изменить код, чтобы не пробегать по всем записям.

void __fastcall TDM::InsertRec(void)
{
int inc = tblTrucksInc->AsInteger;
tblTrucks->Insert();
TBookmark Rec = tblTrucks->GetBookmark();
tblTrucks->DisableControls();
tblTrucksInc->Value = inc - 1 ;
// Прохожу таблицу снизу, уменьшая знач индекса
tblTrucks->Last();
while( tblTrucksInc->AsInteger >= inc )
{
tblTrucks->Edit();
tblTrucksInc->Value = tblTrucksInc->Value + 1 ;
tblTrucks->Prior();
};
tblTrucks->Edit();
tblTrucksInc->Value = inc ;
tblTrucks->Post();
tblTrucks->GotoBookmark(Rec);
tblTrucks->FreeBookmark(Rec);
tblTrucks->EnableControls();
}
...
Рейтинг: 0 / 0
01.10.2002, 14:55
    #32054462
Vlad_P
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка записи в таблицу в определённое место, помогите
Вообще-то ни одна БД не должна предусматривать вставку записей на физ. уровне в определенное место по желанию пользователя. Получаются слишком большие накладные расходы на ОС и файловую систему.
Для выборки в определенном порядке существуют индексы и запросы, произведенные по индексу.
То что запись "улетает" - правильно, если у тебя включена выборка данных по умолчанию на autoinc поле. Так по умолчанию предлагает BC Builder, кот. ты используешь, как я понимаю.
Наверное тебе лучше создать еще один индекс, по которому ты бы хотел видеть записи в форме, и включить его при вызове данной формы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
22.12.2004, 18:32
    #32840216
DjSlavik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка записи в таблицу в определённое место, помогите
Попробуй отключить индексацию на момент модификации базы
1) AnsiString IN = tblTrucksInc->IndexName;
2) tblTrucksInc->IndexName = "";
3) tblTrucksInc->Insert();
4) .... (редактирование вставленной записи)
5) tblTrucksInc->Post();
6) tblTrucksInc->IndexName = IN;

Думаю шо работать будет... если первое поле не Autoincrement!!!
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вставка записи в таблицу в определённое место, помогите / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]