3

シーン:

実行時に特定の (任意の) データセットに計算フィールドを追加したいと考えています。メソッドを実行する以外に、データセット構造を取得する方法がわかりませんDataSet.Open

ただし、このOpen方法では、データの少なくとも 1 行をサーバーからクライアントに転送する必要があります。次に、DataSet を閉じ、フィールドを追加して、再度開く必要があります。私の意見では、これは不必要なオーバーヘッドです。これを行うより良い方法はありますか?計算されたフィールドを任意のデータセットに追加できるようにしたいのですが、開く前にその構造がわからないことに注意してください。

擬似コードでは、次のようになります。

DataSet.Open;
DataSet.Close;
RecreateFieldsStructure;
AddCalculatedField;
DataSet.Open;

御時間ありがとうございます。

4

2 に答える 2

3

あなたの質問をよく理解できれば; ADOQuery (open) メソッドを呼び出す前に、テーブル構造を確認/知りたい場合。それが必要な場合は、(GetFieldNames) のような ADOConnection メソッドを使用できます。ここでは、テーブル (EMP) のフィールド名を取得する方法の例を示します。

procedure TForm2.Button1Click(Sender: TObject);
var
  lstFields: TStringList;
begin
  lstFields := TStringList.Create;
  try
    ADOConnection1.GetFieldNames('EMP', lstFields);
  finally
    lstFields.Free;
  end;
end;

次に、すべてのフィールド名がオンになりました (lstFields)。これが役立つことを願っています。

よろしく。

于 2010-02-23T11:53:44.603 に答える