powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Вставка записи в таблицу в определённое место, помогите
3 сообщений из 3, страница 1 из 1
Вставка записи в таблицу в определённое место, помогите
    #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
Вставка записи в таблицу в определённое место, помогите
    #32054462
Vlad_P
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще-то ни одна БД не должна предусматривать вставку записей на физ. уровне в определенное место по желанию пользователя. Получаются слишком большие накладные расходы на ОС и файловую систему.
Для выборки в определенном порядке существуют индексы и запросы, произведенные по индексу.
То что запись "улетает" - правильно, если у тебя включена выборка данных по умолчанию на autoinc поле. Так по умолчанию предлагает BC Builder, кот. ты используешь, как я понимаю.
Наверное тебе лучше создать еще один индекс, по которому ты бы хотел видеть записи в форме, и включить его при вызове данной формы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Вставка записи в таблицу в определённое место, помогите
    #32840216
DjSlavik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробуй отключить индексацию на момент модификации базы
1) AnsiString IN = tblTrucksInc->IndexName;
2) tblTrucksInc->IndexName = "";
3) tblTrucksInc->Insert();
4) .... (редактирование вставленной записи)
5) tblTrucksInc->Post();
6) tblTrucksInc->IndexName = IN;

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


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