是否可以使用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/