掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
FieldKind := fkInternalCalc のフィールドのフィルター処理について (ID:150138)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
頻繁に、10万件を超えるCSVを読み込むシステムをすでに運用しています。 業務内容と運用環境の都合から、SQLではなく、TClientDataSetを用いた使い捨て処理をしています。 文字処理を含む複雑な計算項目のフィールドがあり、DLLを用いて OnCalcFields で処理しています。 このフィールドはフィルターとして利用したいために、FieldKind := fkInternalCalcに設定しています。 ところが、 読込み時間を短縮するために、OnCalcFieldsをnilに設定し、全行をAppend--Postで読み込み、直後でOnCalcFieldsをセットとすると、DBGridでは問題なく表示されるのに、この項目を用いたフィルターは、値がないものとして処理をされてしまいます。 OnCalcFieldsをセットしてAppend--Postすると問題なくフィルターが有効に機能しますので、Post処理時のOnCalcFieldsが働いているかどうかが分かれ目と思われます。 これは、TClientDataSetの仕様として、しょうがないのでしょうか。 OnCalcFieldsをセットしての読込みでは、処理時間が5倍ほどかかりますので、できれば読み込んだ直後の処理で済ませられればと考えています。 試しに、 OnCalcFields nil データ読込み OnCalcFields セット データセット をClose Open と試してみましたが、ダメでした。
←解決時は質問者本人がここをチェックしてください。
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.