Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Вставка в середину таблицы [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 вновь вставленной записи по ключевому полю


Наверх

Титульная страница Поиск, карта сайта Написать письмо