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

Вниз

Заполнение таблицы(TADOTable) информацие из потока(TADOQuery)   Найти похожие ветки 

 
tramp   (2003-06-11 17:22) [0]

В BDE есть компонент TBathMove перемещающий информацию из одной таблицы (или потока на выходе TQuery) в другую. Как сделать это в через ADO? Добавлени по сторокам не рассаматривается. Имеется в виду что-то более быстое и элегантное :)


 
Shaman ©   (2003-06-11 17:40) [1]

Думаю, кроме как по строкам перегонять, ничего и не придумаешь (TBathMove тоже так поступает). Только передавать значения нужно без использования вариантных преобразований, тогда код будет быстро работать. Ниже приведен кусок из процедуры, делающий нечто подобное.


var
i: Integer;
j: Integer;
Q: TSQLQuery;
aDS: TClientDataSet;
F: TField;
P: Pointer;
...
j := aDS.DataSize;
GetMem(P, j);
try

while not Q.Eof do
begin
aDS.Append;
for i := 0 to Q.FieldCount - 1 do
if Q.Fields[i].GetData(P, True) then aDS.Fields[i].SetData(P, True);
aDS.Post;
Q.Next;
end;
Q.Active := False;

finally
if P <> nil then FreeMem(P);
end;

...


З.Ы. Поля двух таблиц должны быть строго идентичными


 
tramp   (2003-06-14 12:31) [2]

Имелось в виду, что Q:TADOQuery? Спасибо:-)



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

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

Наверх




Память: 0.47 MB
Время: 0.021 c
3-19984
DreamDesire
2003-06-13 10:27
2003.07.07
Необходимо создать что-то наподобие SQL-builder


1-20111
McSimm2
2003-06-23 16:05
2003.07.07
Очистка StringGrid


1-20044
Semin Aleksei
2003-06-23 12:11
2003.07.07
С++ и Delphi по разному вызывают виртуальный метод в конструкторе


6-20177
stas_a
2003-04-30 10:33
2003.07.07
Модемное соединение


14-20257
ЮРИЙ_К
2003-06-19 10:50
2003.07.07
Домашняя сеть на одном компе. Как сделать ???