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

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

ADO. Работа с двумя провадерами [D7, dBase, FoxPro]


Очень злой ©   (2011-02-24 11:15:00) 

Требуется выбрать некую информацию, которая формируется из таблиц, часть которых находится в Oracle а часть в VFP
Каким образом проще работать с двумя СУБД ?

Я так понимаю что нужно создать временные таблицы в одной СУБД, и перенести в них информацию из другой СУБД, чтобы потом нормально работать с SQL.

Но как тогда проще переносить таблицы?
Создавать временные таблицы и в цикле переносить построчно все записи или можно проще, чтобы не городить лишних циклов?


Очень злой   (2011-03-01 00:06:00) [1]


> если есть возможность(административная. техническая есть
> точно) создать dblink из Oracle на фокс, то так и нужно
> сделать.


Теоретически можно... Но если тут не обойтись без настройки ODBC - то в моем случае смысла нет.


Кщд   (2011-02-28 15:02:00) [2]

>Очень злой   (25.02.11 19:09) [7]
>А вообще интересовало меня то, правильный ли это подход? либо есть попроще конструкции?
если есть возможность(административная. техническая есть точно) создать dblink из Oracle на фокс, то так и нужно сделать.


Sergey13   (2011-02-28 11:51:00) [3]

> [7] Очень злой   (25.02.11 19:09)

Сори. Похоже это я что то протупил. Мне показалось, что коммит внутри цикла.


Очень злой   (2011-02-25 19:09:00) [4]


> Sergey13 ©   (25.02.11 17:16) [6]
>
> Коммитить вставку каждой записи вовсе необязательно.

насчет комита немного не понял.
т.е. post убрать из цикла?

А вообще интересовало меня то, правильный ли это подход? либо есть попроще конструкции?


Sergey13   (2011-02-25 17:16:00) [5]

Коммитить вставку каждой записи вовсе необязательно.


Очень злой   (2011-02-25 12:44:00) [6]

* ADOReceipt - это уже открытый TADODataset c нужными данными, выбранными из таблиц VFP


Очень злой   (2011-02-25 12:43:00) [7]

По некоторым причинам решил все-таки отказаться от прилинковки.

Теперь делаю необходимые запросы в фокспро и в результате получаю 1 набор данных, который далее нужно перенести в Оракл, для дальнейших операций с уже имеющимися в Оракле таблицами.

Получается что-то типа этого: (ADOReceipt - это уже открытый TADODataset c нужными данными)

       with TADODataSet.Create(Application) do
         try
           Connection:=AdoOra;
           CommandText:='select * from TMP_NS where 0=1';
           open;
           try
             AdoOra.BeginTrans;
             AdoReceipt.First;
             while not AdoReceipt.Eof do
             begin
               insert;
               for i:=0 to AdoReceipt.Fields.Count-1 do Fields[i].Value:=AdoReceipt.Fields[i].Value;
               post;
               AdoReceipt.Next;
             end;
             AdoOra.CommitTrans;
           except
             AdoOra.RollbackTrans;
           end;
         finally
           free;
         end;


Это нормально 2 цикла по записям и по полям? Или можно как-то попроще и красивее в смысле реализации в Дельфи?


Sergey13   (2011-02-24 16:04:00) [8]

> Это можно сделать из своей программы?
Это можно сделать из программы управления Ораклом, типа TOAD, PL/SQL Developer и т.д. и т.п. Даже из плюсов можно.
Наверное можно и из своей.

> ткните мордой в гугл...
http://www.google.ru/search?hl=ru&newwindow=1&q=Oracle+DataBase+Links&aq=f&aqi=g1&aql=&oq=


Очень злой   (2011-02-24 15:44:00) [9]


> Можно попробовать прилинковать к ораклу ваши фокпрошные
> таблицы. Тогда ничего не надо переносить.


Это можно сделать из своей программы? Чтобы вручную ничего не менять, например настройки ОДБС...

Если да, то по возможности приведите пример, или ткните мордой в гугл... :)


Sergey13   (2011-02-24 11:27:00) [10]

Можно попробовать прилинковать к ораклу ваши фокпрошные таблицы. Тогда ничего не надо переносить.


Наверх

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