Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Создание курсора [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


Наверх

Титульная страница Поиск, карта сайта Написать письмо