JDBC (Oracle), ResultSet - удаление...
От: djon Россия  
Дата: 12.11.01 05:37
Оценка:
Возможно-ли удалить строку из ResultSet, без удаления записи из таблицы ?
Тоже самое относительно добавления.

Использую драйв внутри Oracle.
Re: JDBC (Oracle), ResultSet - удаление...
От: djon Россия  
Дата: 16.11.01 08:55
Оценка:
Ни кто не знает или это так просто, что ни кто не хочет ответить ?
Re[2]: JDBC (Oracle), ResultSet - удаление...
От: fmike  
Дата: 23.11.01 09:03
Оценка:
Мне кажется тут есть загвоздка даже не со стороны ResultSet и его имплементации а со стороны того что так делать не надо
Это важно — юзать нужные классы для того для чего они предназначены
ничего добавить в ResultSet нельзя
удаляя из него — удаляешь и в базе (если не rollback + если емплементация вообще это поддерживает)

Но еще раз повторюсь — не нагружай RS тем что он не должен делать — напиши свой класс
И не думай про производительность — ты пишешь не на том языке
Ява позволяет думать про архитектуру вцелом — и именно это позволяет уменьшить workarounds в будущем и выиграть эту самую производительность
Re[3]: JDBC (Oracle), ResultSet - удаление...
От: Аноним  
Дата: 26.11.01 04:53
Оценка:
Спасибо за ответ.
Но все-таки кое с чем позволю себе не согласиться.

F>ничего добавить в ResultSet нельзя


как ??
Может это не правильно с точки зрения эстетики,
но возможность такая имеется (в ResultSet).


F>Но еще раз повторюсь — не нагружай RS тем что он не должен делать — напиши свой класс

F>И не думай про производительность — ты пишешь не на том языке
F>Ява позволяет думать про архитектуру вцелом — и именно это позволяет уменьшить workarounds в будущем и выиграть эту самую производительность

Это все красиво, но:

Представим себе достаточно большую базу.
В ней две таблицы:
Account (СЧЕТА) 1.000.000
Entry (ПРОВОДКИ) 10.000.000
Хочу посмотреть все счета, по которым за последний месяц
были проводки на сумму больше 100000руб.
Такой запрос (поле СУММА в ПРОВОДКАХ не индексированно)
может выполняться дастаточно долго.
И в случае, если в получившемся списке я захочу произвести с какими-либо счетами операции,
мне необходимо будет каждый раз заново выполнить запрос.

Хочу заметить. что пример является реальным.
А с точки зрения красивости — оно конечно...
Re[4]: JDBC (Oracle), ResultSet - удаление...
От: fmike  
Дата: 26.11.01 06:47
Оценка:
А>Представим себе достаточно большую базу.
А>В ней две таблицы:
А>Account (СЧЕТА) 1.000.000
А>Entry (ПРОВОДКИ) 10.000.000
А>Хочу посмотреть все счета, по которым за последний месяц
А>были проводки на сумму больше 100000руб.
А>Такой запрос (поле СУММА в ПРОВОДКАХ не индексированно)
А>может выполняться дастаточно долго.
А>И в случае, если в получившемся списке я захочу произвести с какими-либо счетами операции,
А>мне необходимо будет каждый раз заново выполнить запрос.

А>Хочу заметить. что пример является реальным.

А>А с точки зрения красивости — оно конечно...

Немного не понятно
1. Кто мешает добавить индекс на те поля по которым идет поиск
2. Зачем нужно начинать поиск по новой? Вытащили строку из списка — положили данные либо в базу либо в свой список, идем дальше. Как прошли весь список — flush-нули свой новый список и коммит
?
Re[5]: JDBC (Oracle), ResultSet - удаление...
От: djon Россия  
Дата: 29.11.01 05:32
Оценка:
fmike, во первых спассибо за ваши ответы :)

а вот пример который я привел — наверное не совсем подходящий.
соответственно и ваш ответ для меня был не совсем понятен...

возьмем проще и нагляднее.
две таблицы:
Документ (doc), Клиент (client). (обязательная связь client->doc)
просматриваю список всех клиентов (select ... from client,doc where client.id=doc.id)
все нормально, хожу по курсору, смотрю.
Хочу удалить запись...
все, удаление в курсоре не работает — необходимо сделать это оператором delete (с чем я вполне согласен)
и прорефрешить курсор.
^^^^^^^^^^^^^^^^^^^^^ вот это мне и не нравится.

Надеюсь все понятно :)
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.