Поиск:

Ответ в темуСоздание новой темы Создание опроса
> удалить запись из набора данных, но не из таблицы, Oracle 
V
    Опции темы
Kbl4AH
Дата 16.3.2009, 09:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Здравствуйте. Задача такая...
Есть чужая и моя таблицы... Нужно отобразить записи чужой таблицы, удалить не нужные (из набора, но не из таблицы), а оставшиеся вставить в мою таблицу...
Вопрос:
Как удалить запись из грида (в датасете поле rowid не выбираю, чтобы случайно не удалить запись из чужой таблицы)?
То есть как удалить запись из набора, не подвергая изменениям таблицу-источник?
Или хотя бы не удалить, а сделать какую-то визуальную пометку, что эта запись не нужна...
Скажем, добавить в грид колонку с CheckBox и галки ставить... Пробовал добавить, но у меня чекбокс - недоступный для изменений (наверное, из-за того, что все тот же rowid не выбираю)...

Добавлено через 14 минут и 44 секунды
Есть, конечно, вариант - сразу все записи из чужой таблицы вставить в свою, отобразить в гриде и удалить не нужные...
Но может кто-то решал подобное более элегантным способом?
PM MAIL ICQ   Вверх
pseud
Дата 16.3.2009, 10:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



ключевое поле в таблице есть? id?


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(pseud @  16.3.2009,  10:00 Найти цитируемый пост)
ключевое поле в таблице есть? id?

в таблице есть rowid, но я его не хочу ни при каких обстоятельствах выбирать - это гарантия того, что я данные чужой таблицы нечаянно не изменю...
PM MAIL ICQ   Вверх
former
Дата 16.3.2009, 10:08 (ссылка)    | (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Kbl4AH, думаю тебе помогут временные таблицы.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
pseud
Дата 16.3.2009, 10:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Kbl4AH @  16.3.2009,  10:04 Найти цитируемый пост)
в таблице есть rowid, но я его не хочу ни при каких обстоятельствах выбирать - это гарантия того, что я данные чужой таблицы нечаянно не изменю...

rowid - ты его заводил??
это поле, которое заводит оракл сам для себя.
а внешние ключи на эту таблицу ты по этому полю делаешь???


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(pseud @  16.3.2009,  10:10 Найти цитируемый пост)
а внешние ключи на эту таблицу ты по этому полю делаешь???

никаких ключей в таблице - нет
PM MAIL ICQ   Вверх
pseud
Дата 16.3.2009, 10:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Kbl4AH @  16.3.2009,  10:04 Найти цитируемый пост)
в таблице есть rowid, но я его не хочу ни при каких обстоятельствах выбирать - это гарантия того, что я данные чужой таблицы нечаянно не изменю...


давай по порядку. какие в таблице есть поля? именно те, что ты создавл.

Добавлено через 1 минуту и 43 секунды
oracle не даст создать поле с именем rowid


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 10:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



pseud, смысл такой... есть чужая таблица (в ней я ничего не делаю)... мне нужно некоторые записи (скажем по определенной дате) из нее вставить в мою таблицу... но вставить нужно не все записи, а те которые нужны пользователю... то есть отобразить нужно все записи, потом пользователь пометит какие записи нужны, и нужные записи уже вставить в мою таблицу...
с точки зрения пользователя удобно было бы не нужные записи удалить, но удалять их из чужой таблицы - нельзя... нужно удалить их только из грида...

Добавлено через 7 минут и 54 секунды
в принципе решение нашел такое...
вставляю все записи в свою таблицу запросом Query... но коммит сессии не делаю...
показываю форму модально, в ней в гриде отображаю записи (выбираю в датасете с rowid)... пользователь удаляет не нужные...
потом если форма закрыта кнопкой 'Сохранить' - 
Код

OracleSession1.ApplyUpdates([FormModal.OracleDataSet1], True)
,
если нет - 
Код

OracleSession1.CancelUpdates([FormModal.OracleDataSet1]);

вроде работает... вот тока не уверен все ли я корректно сделал, нет ли не учтенных (по незнанию) мной моментов(((
PM MAIL ICQ   Вверх
former
Дата 16.3.2009, 10:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Kbl4AH @  16.3.2009,  10:04 Найти цитируемый пост)
в таблице есть rowid, но я его не хочу ни при каких обстоятельствах выбирать - это гарантия того, что я данные чужой таблицы нечаянно не изменю... 


сделай ее только для чтения. Тогда будет не страшно использовать rowid.

Может тебе тогда заносить индексы в динамический массив, а потом просто повторно делать выборку за вычетом отмеченных строк?

Добавлено через 4 минуты и 13 секунд
А на счет временной таблицы зря. И Microsoft и Oracle советуют для промежуточных операций их использовать. Как раз по той же причине - что бы не потерять данные.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(former @  16.3.2009,  10:39 Найти цитируемый пост)
сделай ее только для чтения. Тогда будет не страшно использовать rowid.

в таком случае запись из грида не удалится
PM MAIL ICQ   Вверх
former
Дата 16.3.2009, 10:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Kbl4AH @  16.3.2009,  10:44 Найти цитируемый пост)
в таком случае запись из грида не удалится 

поэтому я опять обращаю твой взор к временным таблицам.


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 10:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(former @  16.3.2009,  10:47 Найти цитируемый пост)
поэтому я опять обращаю твой взор к временным таблицам

я нашел более простое решение...

Добавлено через 14 секунд
имхо временные таблицы - зло
PM MAIL ICQ   Вверх
pseud
Дата 16.3.2009, 10:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Экспёрт Тыдыщ
***


Профиль
Группа: Завсегдатай
Сообщений: 1175
Регистрация: 18.5.2007
Где: Минск, Беларусь

Репутация: 16
Всего: 40



Цитата(Kbl4AH @  16.3.2009,  10:28 Найти цитируемый пост)
. пользователь удаляет не нужные...


ты ведь наоборот хотел, чтобы пользователь выбрал нужные


--------------------
Испытание чужого терпения можно считать успешным, если оно лопнуло...
PM MAIL   Вверх
former
Дата 16.3.2009, 10:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

Репутация: 7
Всего: 17



Цитата(Kbl4AH @  16.3.2009,  10:52 Найти цитируемый пост)
я нашел более простое решение...

Ну, и где же оно?


Цитата(Kbl4AH @  16.3.2009,  10:52 Найти цитируемый пост)
имхо временные таблицы - зло 

Почему?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Kbl4AH
Дата 16.3.2009, 11:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 741
Регистрация: 1.4.2008
Где: Вятка

Репутация: 6
Всего: 15



Цитата(pseud @  16.3.2009,  10:54 Найти цитируемый пост)
ты ведь наоборот хотел, чтобы пользователь выбрал нужные

без разницы: или удаляет не нужные или помечает нужные...
Цитата(former @  16.3.2009,  10:56 Найти цитируемый пост)
Ну, и где же оно?

см. выше
Цитата(former @  16.3.2009,  10:56 Найти цитируемый пост)
Почему?

мне не нравится их использовать... избыточны они, что ли...
PM MAIL ICQ   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.