Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.06.15;
Скачать: CL | DM;

Вниз

ADO. Работа с двумя провадерами   Найти похожие ветки 

 
Очень злой   (2011-02-24 11:15) [0]

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

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

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


 
Sergey13 ©   (2011-02-24 11:27) [1]

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


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


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


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

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


 
Sergey13 ©   (2011-02-24 16:04) [3]

> Это можно сделать из своей программы?
Это можно сделать из программы управления Ораклом, типа 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-25 12:43) [4]

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

Теперь делаю необходимые запросы в фокспро и в результате получаю 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 цикла по записям и по полям? Или можно как-то попроще и красивее в смысле реализации в Дельфи?


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

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


 
Sergey13 ©   (2011-02-25 17:16) [6]

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


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


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

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

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


 
Sergey13 ©   (2011-02-28 11:51) [8]

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

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


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

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


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


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


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



Страницы: 1 вся ветка

Текущий архив: 2014.06.15;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.007 c
2-1377425963
vasa777
2013-08-25 14:19
2014.06.15
сразу в результ


15-1384955382
Torry
2013-11-20 17:49
2014.06.15
Но вот, пора


15-1386016202
Юрий
2013-12-03 00:30
2014.06.15
С днем рождения ! 3 декабря 2013 вторник


15-1386249858
SKIPtr
2013-12-05 17:24
2014.06.15
поиск в яндекс браузере


15-1384363415
Inflame123
2013-11-13 21:23
2014.06.15
Посоветуйте литературу