|
|
|
Вставка записи в таблицу в определённое место, помогите
|
|||
|---|---|---|---|
|
#18+
В индексированной таблице 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(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 12:31 |
|
||
|
Вставка записи в таблицу в определённое место, помогите
|
|||
|---|---|---|---|
|
#18+
Вообще-то ни одна БД не должна предусматривать вставку записей на физ. уровне в определенное место по желанию пользователя. Получаются слишком большие накладные расходы на ОС и файловую систему. Для выборки в определенном порядке существуют индексы и запросы, произведенные по индексу. То что запись "улетает" - правильно, если у тебя включена выборка данных по умолчанию на autoinc поле. Так по умолчанию предлагает BC Builder, кот. ты используешь, как я понимаю. Наверное тебе лучше создать еще один индекс, по которому ты бы хотел видеть записи в форме, и включить его при вызове данной формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2002, 14:55 |
|
||
|
Вставка записи в таблицу в определённое место, помогите
|
|||
|---|---|---|---|
|
#18+
Попробуй отключить индексацию на момент модификации базы 1) AnsiString IN = tblTrucksInc->IndexName; 2) tblTrucksInc->IndexName = ""; 3) tblTrucksInc->Insert(); 4) .... (редактирование вставленной записи) 5) tblTrucksInc->Post(); 6) tblTrucksInc->IndexName = IN; Думаю шо работать будет... если первое поле не Autoincrement!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2004, 18:32 |
|
||
|
|

start [/forum/topic.php?fid=57&msg=32054361&tid=2033949]: |
0ms |
get settings: |
8ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
48ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
| others: | 230ms |
| total: | 382ms |

| 0 / 0 |
