2013-06-24 86 views
0

是否有可能使用delphi zeoslib从数据库读取表并将其写回到另一个服务器?德尔福ZEOSlib:从表中读取并将其写入另一个数据库

我认为它,读表和回写结果集,但我不知道如何,可能吗?

我认为以下: 我做了一个zquery:Select * from table1,与zconnection1我要插入的结果反馈到另一个数据库,以zconnection2

我使用mysql数据库。

+1

当然,这是可能的;这可能没有多大帮助,但是除了“是否有可能”两次之外,你什么也没问。如果你在这里需要帮助,你需要具体说明你的问题,提供一些我们可以用来帮助你的信息,并且至少表现出一些努力去找出你自己。你有没有至少从表格中读取的代码?你有关于我们可以使用的其他数据库的任何信息吗?请[编辑]你的问题,所以我们可以尝试帮助你找到解决方案。谢谢。 –

+0

编辑了解更多详情。 – Woodyka

+0

我的意思是,从db1读取一张表,并将其写入另一个具有相同表格的db。 – Woodyka

回答

0

我不知道MySQL(或Zeos)是否支持跨服务器查询; MySQL documentation应回答该部分。 Zeos是否允许通过数据库管理系统也是我无法回答的问题;使用开源产品的一个缺点是它们通常缺乏能够告诉你这些事情的文档。我知道肯定会工作(虽然这将是一个非常大的表有点慢)

一种方法是做一行一行:

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; 

另外两个possiible浮现在脑海中的替代品(两者都没有,我知道MySQL或的Zeos是否支持)是

  • 出口在Server1作为备份表,并恢复到Server2
  • 如果支持SELECT...INTO,你可以选择到一个临时磁盘文件在服务器1上,然后执行INSERT FROM将临时磁盘表导入服务器2
+0

不仅仅是Zeos--仅仅是一个桥梁传递查询文本的过程 - 底层的RDBMS服务器(它们可以不同)也应该支持这一点。 –

+0

@ Arioch'The:当然,底层DBMS会影响到这一点,但通常数据访问库会限制功能,以便在DBMS系统之间提供灵活的支持。即使底层数据库管理系统支持,我也不知道Zeos是否会支持这一点。旧的BDE用于提供它自己的SQL实现,以屏蔽平台差异(但也限制了您可以在该SQL中执行的操作)。不过,我编辑了这一点,以澄清这一点,并对其进行一些修改。谢谢。 :-) –

+0

是的,BDE是怪兽。但是我记得LocalSQL只用于非SQL数据源或跨服务器查询(将这些服务器降级为非SQL行生成器)。例如,当您使用SQLink作为Interbase时,您使用了LocalSQL中不存在的服务器功能,如ID生成器 –

相关问题