2016-08-16 3 views
0

Я хочу скопировать записи нескольких сотрудников из одной компании в другую более крупную. Если возникает конфликт с первичным ключом, запись должна быть заменена. Для Delphi DataSet есть команды «Вставить», «Добавить», «Изменить» и «Удалить», но есть ли простой способ «Заменить» запись между одними и теми же таблицами, не зная полной структуры таблицы или первичных ключей? Есть 30 полей, и они могут быть изменены в будущем.Как заменить записи на другой набор данных?

В MySQL это было бы REPLACE INTO table2 (SELECT * FROM table1), но я хотел изменить несколько полей в целевой таблице, например, идентификатор сотрудника и коды отделов.

+0

Обычно я бы рекомендовал компонент FireDAC BatchMove с режимом, установленным в dmAppendUpdate, но поскольку вы, похоже, застряли с Delphi 7, это, вероятно, не помогает. –

+0

@UweRaabe Я уже придумал решение, но BatchMove кажется интересным, потому что я использую MyDAC, и есть компонент CRBatchMove. Можете ли вы показать мне пример использования BatchMove? –

ответ

0

Боюсь, что нет возможности заменить/перезаписать записи набора данных в Delphi. Но используя MySQL, я могу выбрать исходные данные в таблице temp, изменить данные таблицы temp и поместить их в целевую таблицу.

Смежные вопросы