Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Вниз

Перенос данных из одной БД в другую   Найти похожие ветки 

 
123-ий ©   (2009-02-06 09:04) [0]

Выдираю записи из одной таблицы. Имею в результате заполненный DataSet. Создаю новый DataSet, State которого назначаю dsInsert.

 TmpDataSet := TADOQuery.Create(self);
 TmpDataSet.Insert;
 ....  // Вот здесь надо каким то образом перенести записи из заполненного DataSet"а во вновь созданный

Далее указатель на вновь созданный TmpDataSet передается в функцию, которая выполняет вставку с помощью транзакции.
Каким образом можно вставить эту кучку записей?


 
Sergey13 ©   (2009-02-06 09:15) [1]

> Каким образом можно вставить эту кучку записей?

книжку прочитать. Хотябы одну. Или программиста пригласить.

ЗЫ: понимаю что неконструктивно отвечаю, но не могу сдержаться. 8-)


 
Сергей М. ©   (2009-02-06 09:35) [2]


> Каким образом можно вставить эту кучку записей?


Для каждой "штучки" из этой "кучки" следует выполнить отдельную последовательность TmpDataSet.Insert ..TmpDataSet.Post


 
123-ий ©   (2009-02-06 09:38) [3]


> Сергей М. ©   (06.02.09 09:35) [2]

аа, это конечно да,  но не все так просто. когда датасет передается в ту функцию, которая выполняет вставку с помощью транзакции, у этого датасета статус должен быть dsInsert. поэтому видимо post выполнять нельзя.


 
Сергей М. ©   (2009-02-06 09:39) [4]


> 123-ий ©   (06.02.09 09:38) [3]


Околесицу ты несешь)


 
123-ий ©   (2009-02-06 09:41) [5]


> Сергей М. ©   (06.02.09 09:39) [4]

дык а че неправильно то? я просто третий день шаманю, уже устал ацки, мозг подвисает... =)


 
123-ий ©   (2009-02-06 09:46) [6]


> Сергей М. ©   (06.02.09 09:39) [4]

там вообще вот как (в функции той, которая данные в БД вставляет транзакцией):


if DataSet.Recordset.Status = 1 then
 // Вставка новых записей в БД


То есть суть моей проблемы в том, что мне необходимо передать в эту функцию заполненный датасет, рекордсет которого равен единице, то бишь
New record исходя из http://www.devguru.com/Technologies/ado/QuickRef/recordset_status.html


 
Сергей М. ©   (2009-02-06 09:48) [7]

function КотраяВыполняетВставкуСПомошьюТранзакции (Откуда, Куда: TADODataset): SomeResult;
begin
 СтартТА
   Для каждой записи из Откуда делать
      Куда.Insert;
        Заполнить поля новой Куда-записи из полей текущей Откуда
-записи
       Куда.Post;        
 КоммитТА

end;


 
123-ий ©   (2009-02-06 09:52) [8]


> Сергей М. ©   (06.02.09 09:48) [7]

ну вот видимо придется таки переделать эту функцию, а хотелось ее не трогать. ладно, буду пробовать предложенный вариант.


 
123-ий ©   (2009-02-06 09:58) [9]


> 123-ий ©   (06.02.09 09:52) [8]

поясню, почему не хотел трогать. эта функция написана до меня, причем написана через не поймешь какое место. но через это же место она работает. :) и лучше на нее не дышать =)))


 
Сергей М. ©   (2009-02-06 10:14) [10]


> у этого датасета статус должен быть dsInsert


Это кто сказал, функция та самая ?


 
Плохиш ©   (2009-02-06 11:17) [11]

Удалено модератором


 
123-ий ©   (2009-02-06 11:37) [12]


> Это кто сказал, функция та самая ?

я не совсем правильно сказал. Не у датасета статус должен быть dsInsert, а у DataSet.RecordSet"а статус должен быть 1. Потому что в той функции в зависимости от этого статуса происходят определенные действия (апдейт, инсерт и пр.). А я не знаю, какими методами можно изменить этот статус. Вручную неполучилось ибо readonly.


 
Сергей М. ©   (2009-02-06 11:42) [13]


> 123-ий ©   (06.02.09 11:37) [12]


А ты зачем вообще "выдирал записи из одной таблицы" и "имел в результате заполненный DataSet" ?

Разве не все без исключения записи из этого НД должны быть скопированы куда-то там в контексте той самой т/акции ?


 
123-ий ©   (2009-02-06 13:26) [14]


> Сергей М. ©   (06.02.09 11:42) [13]
там вот в чем фишка. записи выдираются из таблицы на localhost"е, а потом их транзакцией надо отправить на БД, которая удаленная. а то, конечно, я бы их хранимкой скопировал.


 
Сергей М. ©   (2009-02-06 14:35) [15]


> 123-ий ©   (06.02.09 13:26) [14]


Я не спросил "откуда", я спросил зачем)
Т.е. каков был критерий отбора записей при "выдирании" их в НД..



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

Форум: "Прочее";
Текущий архив: 2009.04.05;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.006 c
2-1234349665
harisma
2009-02-11 13:54
2009.04.05
ListView и позиционирование.


15-1233878286
pascal
2009-02-06 02:58
2009.04.05
Перестарьте заниматься ерундой!


15-1233603474
AlexDan
2009-02-02 22:37
2009.04.05
Частота индексации сайтов.


2-1234501240
dark_volk
2009-02-13 08:00
2009.04.05
Копирование таблиц


2-1234525803
webbrowser
2009-02-13 14:50
2009.04.05
WebBrowser.OnDocumentComplite





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский