2011-10-18 3 views
1

警告:総書き換え。ADODataset:XML(ADOスキーマのDBにあらかじめ保存されている)のデータを一時ファイルなしでロードする方法は?

シナリオ:

私はTCustomADODatasetの子孫上のデータベースからいくつかのデータをロード。その後、このデータを(TCustomADODataset.SaveToFileを使用して)XML一時ファイルに保存して、XMLデータを文字列として取得し、データベースBLOBとしてデータベーステーブルに格納できるようにしました。これはエクスポートテーブルです。

XMLを格納したプログラムとは異なる別のプログラムは、そのデータを受け取り、内部の要素を表示し、ユーザーがメインデータベーススキーマにインポートする要素を選択できるようにします。

問題:

上記のアプローチの問題はTCustomADODatasetはLoadFromFileメソッドを使用できるようにする一時ファイルが必要です。

データベースエクスポートテーブルのテキストとして保存されたXMLデータを、一時ファイルを必要としないTCustomADODatasetにロードする他の方法はありますか?

注:

  • たTClientDataset、この場合でオプションではありません。
+0

私は明らかだったようです。このコメントを答えにしてください。私が明日この問題に復帰し、トーリンのコードをテストするのを見てみましょう。ありがとうございました。 –

+0

なぜdownvotes? –

+0

言いにくいのは、フレーズがかなり複雑なためかもしれません。私はあなたが逆の場合を望むと思ったのは初めて。 'LoadFromFileを使用せずにメモリからTClientDatasetに直接データをロードすることは可能ですか? 'というように単純化し、それらの更新を削除してください。 +1中: – TLama

答えて

8

チェックthis例。おそらくあなたが探しているものでしょう。その例のRecordsetFromXMLを使用すると、レコードセットをTCustomADODataSet.Recordsetプロパティに割り当てることができます。

+0

あなたは一時ファイルなしの唯一の解決策を示しているようです。あなたの恩恵をうんざりさせた.. –

+1

ありがとう; btw、私は[TCustomADODataSet.LoadFromFile](http://docwiki.embarcadero.com/VCL/en/ADODB.TCustomADODataSet.LoadFromFile)は同じ[Recordset.Open]を使用するため、この記事のコードは最良のアプローチだと思いますhttp://msdn.microsoft.com/en-us/library/windows/desktop/ms675544%28v=vs.85%29.aspx)メソッドと[TCustomADODataSet.SaveToFile](http://docwiki.embarcadero。 com/VCL/ja/ADODB.TCustomADODataSet.SaveToFile)は、[Recordset.Save](http://msdn.microsoft.com/en-us/library/windows/desktop/ms681501%28v=vs.85%29)を使用します。 aspx)の違いは、ファイルの代わりにストリームを使用している点だけです。 – TLama

関連する問題