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