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

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

Как перенести данные из одной таблицы в другую


Crazy monkey ©   (2006-07-06 13:06:00) 

Есть 2 абсолютно одинаковые таблицы и в этих таблицах 10 полей. Одна из таблиц используется как буфер для переноса данных в основную. Понимаю, что это достаточно кривой подход, но он меня устраивает и менять ничего не хочу.

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

adotable1.FieldByName('Поле1').AsInteger:=adotable2.FieldByName('Поле1').AsInteg er;
adotable1.FieldByName('Поле2').AsInteger:=adotable2.FieldByName('Поле2').AsInteg er;
и.т.д.

Способо колхозный, но признаться и я сам колхозник в Делфи. Только начинаю первые шаги. Подскажите пож-та как перенести данные из одной таблицы в другую по умному.

Очень нужен исходник.

Заранее спасибо.


Virgo_Style   (2006-07-17 13:20:00) [1]

копируй в цикле по полям, а не вручную прописывай каждую пару. Если, конечно, имена полей совпадают.


DimonS   (2006-07-17 08:33:00) [2]

Вопрос в догонку.
Нужно скопировать некоторое количество записей, данных, отобранных select-ом из одной таблицы Access в другую.

НО!
Таблицы находятся в разных mdb-файлах, лежат в сетевых папках. Можно ли такое сделать каким-либо запросом? Или Access такое не поддерживает?


Desdechado   (2006-07-07 10:35:00) [3]

Crazy monkey   (06.07.06 13:29) [5]
Не уверен, что акцесс такое поддерживает, но должен.
AdoCommand.CommandText:='INSERT INTO tabl1 SELECT * FROM tabl2';
Здесь не учтены варианты с разной структурой таблиц и ограничения по условиям. Но, как я понял, тебе это не надо.


ЮЮ   (2006-07-07 04:42:00) [4]


> Я работаю с Аксесовскими таблицами через ADO компоненты.

через ado table. А поэтому выбранный тобой метод - самый лучший. Зачем к колхозным технологиям прикручитвать космические технологии? Чем тебя то не устраивает?

Умного решения кривого подхода в природе не существует.


Crazy monkey   (2006-07-06 13:29:00) [5]

Я работаю с Аксесовскими таблицами через ADO компоненты.


StriderMan   (2006-07-06 13:25:00) [6]


> сам-то пробовал?

нет. наугад.

ндя, пардон, не будет такое работать.

но однозначно это в хранимой процедуре делать надо, через переменные.


Desdechado   (2006-07-06 13:20:00) [7]

StriderMan ©   (06.07.06 13:17) [2]
ты хоть понял, чего написал? сам-то пробовал?


StriderMan   (2006-07-06 13:17:00) [8]

можно сделать хранимую процедуру с циклом, в котором

INSERT INTO TABLE1 (...поля...) VALUES (SELECT * FROM TABLE2 WHERE ....) WHERE ...


Desdechado   (2006-07-06 13:10:00) [9]

Если укажешь СУБД, можешь получить и более быстрые способы.


Наверх

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