![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Создание курсора [D7]
scorpio © (2006-03-27 14:20:00)Добрый день мастера. Подскажите как для работы с БД Oracle создать на рабочей машине курсор с данными которые необходимы для работы, и как их потом вставить обратно в БД.
А то пример с фокса никак не работает.
Desdechado (2006-03-27 18:10:00) [1]> я сделал запрос получил порядка 1000 записей из 1000000
> мне нужно часть из них обновить,
А теперь сделай запрос такой, чтоб получить только те, что нужны, а не те, которые можно взять. И получится 2 тыс. записей вместо миллиона.
Scorpio (2006-03-27 15:08:00) [2]Спасибо
Sergey13 (2006-03-27 15:00:00) [3]2[4] Scorpio © (27.03.06 14:50)
> или я что то не так понял из всей теории ??
Просто у тебя каша в голове из Фокса и советов бывалых.
>У меня есть два пути
Есть еще и третий - стандартный. Написать селективный запрос. Настроить (в зависимости от компонент доступа) возможность его модификации. А дальше работать с ним как с фоксовым (интербейсным, ДБ2-ным - неважно), стандартными методами - Edit, Insert, Delete. Все остальное - не твоя забота. Если обрабатываемых и (главное) обновляемых записей много - целесообразно вынести эту обработку на сервер, написав соответствующую хранимую процедуру, где, кстати уже возможно применение явных курсоров.
Scorpio (2006-03-27 14:50:00) [4]Т.е. это получается что я не могу создать явный для себя курсор, на фоксе я видел как это делается там все красиво, но мне необходимо его создать для себя, т.к. очень большой объем данных придется обрабатывать.
Теперь пример я сделал запрос получил порядка 1000 записей из 1000000, мне нужно часть из них обновить, У меня есть два пути, первый я создаю курсор и работаю с ним, потом изменения возвращаю.
Второй не очень удобный каждый раз для получения этого списка и поиска в нем необходимой информации я создаю неявный курсор. Т.к. после выполнения Query1.ExecSQL; данные обнавлябтся на всем серваке, и что бы получить первоначальный список мне нужен опять таки первоначальный запрос. И это просто напросто перегрузит сервак, или я что то не так понял из всей теории ??
Sergey13 (2006-03-27 14:38:00) [5]2[2] Scorpio © (27.03.06 14:34)
> Но мне объяснили что для работы с БД необходимо создать курсор
А "они" тебе не объяснили, что любойSELECT рождает неявныйкурсор?
А для того, "что бы не угробить данные" надо читать теорию и документацию.
Scorpio (2006-03-27 14:34:00) [6]Почему вторая, там все работает, данные вставляются и удаляются, спасибо. Ошибка была в самой БД, там необходимо было дозапонить некоторые обязательные поля.
Но мне объяснили что для работы с БД необходимо создать курсор, что бы не угробить данные, а все примеры что я наше для этого они не идут, или здесь курсор не создается ??
пробовал писать
Query1.SQL.Add('select * from vova.li where fam_=''Ñèäîðîâ'' into cursor lim');
и без INTO, и так
Query1.SQL.Add('select * into cursor lim from vova.li where fam_=''Ñèäîðîâ''');
все равно ошибка
Sergey13 (2006-03-27 14:26:00) [7]Вторая серия?
http://www.delphimaster.ru/cgi-bin/forum.pl?id=1143179491&n=18