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

Вниз

Уважаемые мастера, подскажите как перегнать данные из FireBird   Найти похожие ветки 

 
svt   (2006-12-21 09:19) [0]

Уважаемые мастера, подскажите как перегнать данные из FireBird to MSSQL. Есть около одного лимона записей в базе FireBird по некоторым причинам необходимо некоторые данные перегнать в MSSQL.
Я написал следующий код, но даже на машине с 2-мя гигами оперативки не смог всю перегнать. Я понимаю, что мог не правильно написать код. Прошу совета как это реализовать. ВОт только по частям перегонять не удобно.

ADOConnection1.Connected:=true;
IBDatabase1.Connected:=true;
IBTransaction1.Active:=true;
IBTable1.Active:=true;
IBTable1.First;

while IBTable1.Eof<>true do
begin
 ADOCommand1.CommandText:="insert into DneprPeople(FirstName,MiddleName,LastName,BirthDay,DeathDay,Atoh,BirthPlace,Sett lement,Street,House,Building,Flat,CN,IR,Indx)"
         +"values ("""+apos(IBTable1VOT_FIRSTNAME.AsString)+""","""+apos(IBTable1VOT_MIDDLENAME.AsString)+""","""
         +apos(IBTable1VOT_LASTNAME.AsString)+""","""+Datetostr(IBTable1VOT_BIRTHDATE.AsDateTime)+""","""
         +DateToStr(IBTable1VOT_DEATHDATE.AsDateTime)+""","""+Inttostr(IBTable1VOT_ATOH.AsInteger)+""","""
         +apos(IBTable1VOT_BIRTHPLACE.AsString)+""","""+apos(IBTable1VOT_L_SETTLEMENT.AsString)+""","""
         +apos(IBTable1VOT_L_STREET.AsString)+""","""+apos(IBTable1VOT_L_HOUSE.AsString)+""","""
         +apos(IBTable1VOT_L_BUILDING.AsString)+""","""+apos(IBTable1VOT_L_FLAT.AsString)+""","""
         +inttostr(IBTable1VOT_CN.AsInteger)+""","""+inttostr(IBTable1VOT_IR.AsInteger)+""","""+apos(IBTable1VOT_L_INDEX.AsString)+""")";
 ADOCommand1.Execute;
 IBTable1.Next;
end;
Спасибою.


 
Sergey13 ©   (2006-12-21 09:30) [1]

> Я написал следующий код, но даже на машине с 2-мя гигами
> оперативки не смог всю перегнать.

Почему? Ждать надоело или причина какая была?

Можно сделать то-ж самое (раз уж написано), только вместо IBTable1 взять IBDataSet и загонять в него записи например по диапазону ID (типа <200000, 2000000-500000,>500000), потом то-же самое, но, блин, параметры то для кого придумали.


 
ORMADA ©   (2006-12-21 09:50) [2]

а найти одбс драйвер с с самого мс скуля всосать данные не пробовал ?


 
svt   (2006-12-21 09:53) [3]


> Почему? Ждать надоело или причина какая была?

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


Если через параметры решиться проблема, то будем их использовать.
но может проблема и не в не использовании параметров.
Возможно я не правильно использую компоненты или использую но не те! я учту IBDataSet. вот вопрос. как перейти к 200000 записи? вопрос банален, но все же.


 
svt   (2006-12-21 09:58) [4]


> а найти одбс драйвер с с самого мс скуля всосать данные
> не пробовал ?

к сожалению, пока мои познания не так велики, но если объяснить что и как, то я попробую.:)


 
Виталий Панасенко   (2006-12-21 10:06) [5]


> svt   (21.12.06 09:53) [3]
>
> > Почему? Ждать надоело или причина какая была?
>
> прекратил операцию и объяснил это нехваткой памяти.

И, я думаю, правильно обьяснил. Ты втянул на клиента туеву хучу инфы.Она ведь должна где-нибудь храниться ? Думаю, это обьясняет и
> вот вопрос. как перейти к 200000 записи? вопрос банален,
>  но все же.


Выкинь IBTable, используй IBDataSet(или IBQuery) и включи UniDirectional=True. Курсор будет однонаправленным, при перемещении на следующую строку НД предыдущие данные освобождают память. Ха, глянул только что - у IBTable тоже есть это св-во(я просто IBX не использую)


 
Desdechado ©   (2006-12-21 10:43) [6]

DataPump из поставки Delphi чем не устраивает?


 
svt   (2006-12-21 10:49) [7]


> Виталий Панасенко   (21.12.06 10:06) [5]

поставил значение в true... вроде работает... память не заканчивается:)
спасибо


 
аноним   (2006-12-21 11:29) [8]


> IBDataSet. вот вопрос. как перейти к 200000 записи? вопрос
> банален, но все же.


по диапазону первичного ключа, например


 
Anatoly Podgoretsky ©   (2006-12-21 12:30) [9]

> svt  (21.12.2006 9:53:03)  [3]

Начни с параметров и однонаправленых курсоров.



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

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

Наверх




Память: 0.49 MB
Время: 0.068 c
2-1172612130
Lonix
2007-02-28 00:35
2007.03.18
Копирование файла


2-1172126982
Виталий Гаврилов
2007-02-22 09:49
2007.03.18
загрузка из текстового файла в Edit


15-1171725305
cawwa
2007-02-17 18:15
2007.03.18
delphi +qword (u64)


1-1169483449
Dmitry_177
2007-01-22 19:30
2007.03.18
Непонятные ошибки при компиляции


6-1159958842
Sinus
2006-10-04 14:47
2007.03.18
Server/ClientSocket vs. TcpClient/Server