0

delphi zeoslib を使用してデータベースからテーブルを読み取り、それを別のサーバーに書き戻すことは可能ですか?

テーブルを読み取って結果セットを書き戻すことだと思いますが、方法がわかりません。それは可能ですか?

私は次のことを考えました: zquery: を作成し、Select * from table1そのzconnection1結果を別のデータベースに挿入して戻したいzconnection2.

データベースを使用していmysqlます。

4

1 に答える 1

0

MySQL (または Zeos) がクロスサーバー クエリをサポートしているかどうかはわかりません。そのMySQL documentation部分に答える必要があります。Zeos がそれを DBMS に渡すことを許可するかどうかも、私には答えられない問題です。オープンソース製品を使用する際の欠点の 1 つは、通常、これらのことを説明するドキュメントがないことです。

私が確実に機能することを知っている1つの方法は(非常に大きなテーブルでは少し遅くなりますが)、行ごとに行うことです:

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;

頭に浮かぶ他の2つの可能な代替手段(MySQLまたはZeosがサポートしているかどうかはわかりません)は次のとおりです。

  • server1 からテーブルをバックアップとしてエクスポートし、server2 に復元します。
  • がサポートされている場合SELECT...INTOは、server1 の一時ディスク ファイルを選択してから、INSERT FROMその一時ディスク テーブルを server2 に作成できます。
于 2013-06-25T12:35:17.627 に答える