Как скопировать таблицу базы данных в другую базу данных, используя TSQLConnection / dbExpress? - PullRequest
4 голосов
/ 01 ноября 2011

Я использую C ++ Builder (или Delphi 2007 и XE2) с использованием DBExpress. Я подключил две базы данных, одну для Firebird (мой локальный жесткий диск), другую для MySQL (в Интернете) используя TSQLConnection. Тогда мой вопрос ... Как я могу использовать (сделать) оператор SQL (или что-нибудь), чтобы скопировать одну таблицу в Firebird в другую таблицу в MySQL? любой комментарий будет очень признателен .. большое спасибо заранее ..

1 Ответ

6 голосов
/ 02 ноября 2011

Вы не можете скопировать содержимое из таблицы Firebird в таблицу MySQL с помощью оператора SQL. Другая СУБД имеет эту функциональность, например, Sql Server имеет Linked Servers, а MySQL имеет FEDERATED engine (работает только для баз данных MySQL).

Итак, у меня есть два варианта решения этой задачи:

  1. Выполните итерации по наборам данных, используя SqlExpr.TSQLQuery или SqlExpr.TSQLDataSet, а затем вставьте каждую запись (строку) вручную в таблицу MySQL.

  2. Используйте TClientDataSet , чтобы выгрузить данные таблицы Firebird с помощью метода SaveToFile, а затем с другим TClientDataSet загрузить данные с помощью LoadFromFile метод, наконец, вы можете объединить Данные второго TClientDataSet в таблицу MySQL.

...