是否可以使用 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 是否支持)是
SELECT...INTO
支持,您可以选择到 server1 上的临时磁盘文件,然后在INSERT FROM
server2 中执行该临时磁盘表