![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Вставка в середину таблицы [D6, IB6.x]
ИБМ © (2002-12-23 09:35:00)Уважаемые господа! Имеется такая вот проблема. Есть база данных на InterBase. В базе таблица. В ней первое поле ключевое, остальные - других форматов. Выбираются из таблицы запросом в IBQuery "select * from table1". При вставке информации клиента (через DBGrid) в середине таблице. При обновлении таблицы мы видим информацию в самой первой строчке. Возможно-ли организовать работу так, чтобы "клиент" в таблице находился в той строчке, в которой добавлялся в DBGrid (В Access так делается, а как это организовать в IB?)
ЮЮ (2002-12-23 10:48:00) [1]>Я как раз веду речь про НД на клиенте.
А зачем его переоткрывать? А если порядок важен, надо обеспечить это на уровне данных
Prooksius (2002-12-23 10:44:00) [2]2 Johnmen © (23.12.02 10:40)
Я как раз веду речь про НД на клиенте.
На сервере - другое дело.
Johnmen (2002-12-23 10:40:00) [3]>Prooksius © (23.12.02 10:27)
>IBDataSet, на сколько я знаю, так и устроен, ...
Нет такого понятия, как аппенд. Есть толькообычный INSERT. А куда физическиляжет запись - ведомо только серверу. :))) И для нас не имеетабсолютно никакого значения...
ИБМ (2002-12-23 10:38:00) [4]Большое спасибо! Вопрос исчерпан!
Prooksius (2002-12-23 10:27:00) [5]2 ИБМ (23.12.02 10:15)
Запомни. в базах данных нет строгого понятия начала, конца и середины таблицы. Все зависит от сортировки. Ты ведешь речь о Наборе Данных НД.
>В днном случае сортировка ненужна
НД без сортировки - изврат. Используй сортирорвку.
>необходимо, чтобы при вставке (DBGrid) в середине таблицы при >сл. выводе в DBGrid запись так и осталась там, куда её вводили, >а не в начале/конце
Не будет такого. IBDataSet, на сколько я знаю, так и устроен, чтобы вставлять записи не инсертом, а аппендом, из-за больших затрат по времени у инсерта (большой НД).
Наталия (2002-12-23 10:22:00) [6]Набор данных (IBQuery) у тебя упорядочен в некотором порядке, которым можно управлять конструкцией order by. То, о чём ты говоришь "там, куда её вводили" - не имеет смысла. Потому что "вводили её" в таблицу. Упорядочи набор нужным образом, а потом найди вставленную запись по запомненному ключу.
ИБМ (2002-12-23 10:15:00) [7]На сколько мне известно locate - это поиск записей по содержимому их полей. Как в данном случае это может помочь?
Prooksius. В днном случае сортировка ненужна, а необходимо, чтобы при вставке (DBGrid) в середине таблицы при сл. выводе в DBGrid запись так и осталась там, куда её вводили, а не в начале/конце.
Prooksius (2002-12-23 09:49:00) [8]Подозреваю, что в датасете(Query) не указан order by. Укажи это и после рефреша таблицы делай Наталия © (23.12.02 09:38)
Наталия (2002-12-23 09:38:00) [9]Сделай IBQuery.locate вновь вставленной записи по ключевому полю