mysql - 德尔福ZEOSlib : read from a table and write it to another database

标签 mysql database delphi zeos

是否可以使用delphi zeoslib从数据库读取表并将其写回到另一台服务器?

我认为可以读取表格并写回结果集,但我不知道如何实现,这可能吗?

我考虑了以下几点: 我做了一个zquery:Select * from table1 ,与 zconnection1我想将结果插入到另一个数据库,即 zconnection2 .

我使用mysql数据库。

最佳答案

不知道MySQL(或Zeos)是否支持跨服务器查询; MySQL documentation应该回答那部分。 Zeos 是否允许它到达 DBMS 也是一个我无法回答的问题;使用开源产品的缺点之一是它们通常缺乏可以告诉您这些事情的文档。

我确信可行的一种方法(尽管对于非常大的表来说会有点慢)是逐行执行:

var
  i: Integer;
begin
  ZQuery1.SQL.Text := 'SELECT * FROM MyDataOnServer1';
  while not ZQuery1.Eof do
  begin
    ZTable1.Append;
    for i := 0 to ZQuery1.FieldCount - 1 do
      ZTable1.Fields[i].Value := ZQuery1.Fields[i].Value;
  end;
  ZTable1.Post;
end;

想到的另外两个可能的替代方案(我都不知道 MySQL 或 Zeos 是否支持)

  • 从 server1 导出表作为备份,并将其恢复到 server2
  • 如果SELECT...INTO支持,您可以选择到 server1 上的临时磁盘文件,然后执行 INSERT FROM将临时磁盘表放入 server2

关于mysql - 德尔福ZEOSlib : read from a table and write it to another database,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17284074/

相关文章:

mysql - 如何在 MySQL 数据库中显示表的架构?

delphi - 如何扩展枚举类型?

string - Delphi 应用程序泄漏 AnsiStrings

mysql - ER_CON_COUNT_ERROR : Too many connections knex and bookshelf

php - 有效 mysql 表字段的正则表达式

mysql - SQL 从表中选择特定值,但当该表中出现某个元素时则不选择

SQL 触发器制造麻烦

Mysql select语句包含where子句所以不适合插入

mysql - 有什么办法可以让MySQL server 'push' DB更新到客户端程序?

delphi - 如果使用调试编译器设置编译 exe 文件,逆向工程或破坏 Delphi 程序是否更容易?