![]() |
|
|
![]()
|
|
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
В продолжение темы "Как обновить запись в DataSet без запроса?".
Здравствуйте. В общем, суть проблемы такова. У меня есть таблица, из нее я выбираю записи OracleDataSet'ом и помещаю их в cxGrid для редактирования. В cxGrid должна быть возможность удаления записей (причем возможен выбор и удаление одновременно нескольких строк), но в таблице они должны сохраняться! Поэтому я добавил в таблицу поле а-ля метку. И теперь, если в записи эта метка есть, то OracleDataSet'ом эта запись не выбирается. То есть выбираю я запись в гриде, жму Delete, в поле записи ставится метка, обновляю датасет и запись удаляется из грида:
Только это некорректно работает при выделении нескольких записей - удаляется только та, которая была выделена последней, причем она может быть в выделенном списке на любой позиции, также возможны не выделенные строки между выделенными при выделении с использованием Ctrl. Кажется, что нужно вогнать вышеприведенный кусок кода в цикл, количество выполнений которого равно количеству выделенных строк. Возникает проблема в том, чтобы поставить курсор на 1-ю выделенную строку, потом на следующую и так до конца. В общем, самому ни в жизнь не справиться. Помогите, пожалуйста. |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Вот типа так
Добавлено через 1 минуту и 36 секунд P.S. вместо vas в примере естественно var -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Вроде правильно перекопировал:
В выделенной строке выдает ошибку "Bookmark not found" Это сообщение отредактировал(а) Kbl4AH - 5.12.2008, 14:53 |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Видимо проблема в самом cxGrid, с DBGrid все работает на ура
-------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Вы правы. DBGrid1.SelectedRows.Items[i] - типа TBookmarkList, а cxGrid1DBTableView1.Controller. SelectedRows[I] - TcxGridTableController... И как быть? |
|||
|
||||
| Vas |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 830 Регистрация: 29.6.2005 Где: Stavropol region Репутация: 23 Всего: 28 |
Читать документацию на cxGrid
Добавлено через 56 секунд А у SelectedRows вашего грида нет свойства Items? -------------------- И опыт, сын ошибок трудных, И гений, парадоксов друг, И случай, бог изобретатель. ... (А.С. Пушкин) |
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Я по-аглицки не понимаю:( А на русском что-нибудь, по-моему, она есть так же как и панацея... То есть ее нет((( Вроде бы по аналогии есть DBGridNowError.SelectedRows.Count - cxGrid1DBTableView1.Controller.SelectedRowCount DBGridNowError.SelectedRows.Items[I] - cxGrid1DBTableView1.Controller.SelectedRows[I] По крайней мере они один и тот же результат дают... Вроде бы... |
|||
|
||||
| Akella |
|
||||||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
Первое - это нужно понять разницу между rows и records, второе - это знать, для чего viewdata, а для чего viewinfo, третье - это для чего controller, а для чего datacontroller. Ну и уметь работать со всем этим гамузом.
Добавлено @ 16:54 Учесть тот факт, что грид может быть отсортирован, сгруппирован и отфильтрован. Добавлено @ 16:55 Причм независимо от самого набора данных, к которому грид подключен. Добавлено @ 16:56 Вот несколько примеров:
Добавлено @ 16:56
Это сообщение отредактировал(а) Akella - 7.12.2008, 16:57 |
||||||
|
|||||||
| Kbl4AH |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Понимать-то, вроде, понимаю: records, datacontroller - это работа с самим набором данных, а rows, controller - работа с отображением набора данных в гриде. Правильно? Факт сортировки учитываю. А вот "уметь работать с этим гамузом" Спасибо! Примеры ваши посмотрел, немного помогли (только как-то сложно все)... Остановился на следующем (нужна была оказывается всего одна строка):
Это сообщение отредактировал(а) Kbl4AH - 8.12.2008, 09:55 |
||||
|
|||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 29 Всего: 329 |
выполняй обновление только если пользователь ответил положительно, а то получается у тебя так, что обновление происходит даже если нажать отмена Добавлено через 1 минуту и 6 секунд
|
|||
|
||||
| Kbl4AH |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 741 Регистрация: 1.4.2008 Где: Вятка Репутация: 6 Всего: 15 |
Верно подмечено |
|||
|
||||
![]()
|
| Правила форума "Delphi: Базы данных и репортинг" | |
|
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами Обязательно указание: 1. Базы данных (Paradox, Oracle и т.п.) 2. Способа доступа (ADO, BDE и т.д.)
FAQ раздела лежит здесь! Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |