問題タブ [tclientdataset]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
delphi - TClientDataSet の現在フォーカスされているフィールド
ユーザーが dbgrid (CDS に接続されている)の 2 つのフィールドのいずれかを更新し、最後に入力したフィールドを保持できるようにしなければならない状況があります。したがって、(ユーザーがデータを入力した後)現在フォーカスされているコントロールを取得する必要があるため、以前のフィールド データがあればそれを削除します。この2つ以外にもフィールドを持っています。
グリッド関連のイベントを使用しないように主張されました。これを実現するには、CDS イベントのみを使用する必要があります。
前もってありがとう、Vijay。
c# - .Net で .cds データベース (TClientDataSet) を読み取る方法
Delphi で作成されたアプリケーションの古いデータベース ファイルがあります。私の仕事は、データを抽出し、それを SQL データベースに移動することです。Delphi の TClientDataSet-Class を使用する .cds 形式であることはわかっています。問題は、Delphi もドキュメントも持っていないことと、アプリを書いた人が何年も前に会社を辞めたことです。だから、私の質問は: Dot.net、Python、Ruby、Java、または Perl を使用してデータにアクセスする方法 (Delphi またはテキスト解析以外に) はありますか? XML または CSV への単純な「エクスポート」も機能します。
delphi - TClientDataSetがメッセージで失敗しました
ここで小さな状況が発生しました。最近までTClientDataSetを使用していませんでした(midas.dllが必要です)。そのため、説明的ではなく、非常に厄介なエラーに直面しています。
デバッガー障害通知
プロジェクトE:\ Work \ XXX \ binary \ XXX.exeに次のメッセージが表示されます:'0x00678827でのアクセス違反:アドレス0x00030a38の書き込み'。プロセスが停止しました。ステップまたは実行を使用して続行します。
これは、clientdataset(メモリ内データセットとして使用している)のフィールドの値を次のように設定しようとするたびに発生します。
両方のフィールドはTStringFieldであり、cdsTestAFieldのサイズは64、ATableFieldのサイズは32です。
注:私は何よりもまずCreateDataSetメソッドを呼び出しています。これは文字列フィールドでのみ発生しますので、助けていただければ幸いです。
お時間をいただきありがとうございます。
delphi - エラー:Delphi 7のCopyFile関数で、ファイル名のディレクトリ名またはボリュームラベルの構文が正しくありません
CopyFile関数を使用して、あるフォルダから別のフォルダにファイルをコピーしたい。ソースファイルのパスは、「itemsDB」と呼ばれるClientDataSetに保存されます。コードは:
コードを実行すると、「ファイル名ディレクトリ名またはボリュームラベルの構文が正しくありません」というエラーメッセージが表示されます。データセット内のすべてのファイルパスを確認しましたが、正しいです。私の例では、clientdatasetに2つのJPG画像「c:\ test1.jpg」と「c:\ test2.jpg」が含まれています。source:='c:\ test1.jpg'を試したところ、完全に機能しますが、 clientdatasetからの場合、失敗します。
前もって感謝します
database - 実行時にクライアントデータセットにフィールドを追加するにはどうすればよいですか?
TClientDataSet
のデータセットによって提供される、がありますTTable
。データセットには、郵便番号(string、5)と通り(string、20)の2つのフィールドがあります。
実行時に、3番目のフィールド(文字列、20)を表示したいと思います。このフィールドのルーチンは、パラメータとして郵便番号を取得し、この郵便番号に属する都市を返します。
問題は、既存のフィールドに計算フィールドを追加することだけです。データ自体の入力は問題ではありません。
私は試した:
cdsは私のclientdatasetでTable1
あり、パラドックステーブルですが、問題は他のデータベースでも同じです。
前もって感謝します
delphi - Intraweb8を使用したDelphi-TIWDBLookupComboBox-マスターの詳細
IW8とDelphi7を使用してアプリケーションを構築しています。アプリケーションは3層です。
1)アプリのデータモジュールにいくつかのTClientDatasetsとTDataSourcesが関連付けられています(マスターと詳細の関係に設定されています)
2)IWフォームにデータセットがデータモジュールのデータソースを指すTIWDBLookupComboBoxesがいくつかあります。
私が直面している問題:TIWDBLookupComboBoxの1つから値を選択すると、データセットが反応しません(マスターデータセットのインデックスを変更しているため、詳細データセットも変更する必要があります)。そこで、clientdatasetsをxmlファイルに保存し、データをwin32アプリケーションにインポートし、すべてのマスターの詳細を同じ方法で設定しました。これで、すべて問題ありません。
だから私の質問は:TIWDBLookupComboBoxesはデータセットの内部カーソルを動かさないようですか?その場合、TIWDBLookupComboBoxesのOnChangeイベントで、recnoを必要な値に設定すると、フォームのレンダリングで問題が発生しますか?
どうすればこれを解決できますか?
.net - .NET を使用して Delphi TClientDataset ファイルを読み取る
Delphi の TClientDataset クラスで記述されたファイルを .NET コードで読み取る必要があります。ここに記載されている解決策は私にとってはうまくいきません。
delphi - Delphi - ClientDataSet - データの検証
clientdataset を使用している Delphi 7 のアプリケーションがあり、それに対していくつかの操作を行います。ClientDataSet は Intraweb Grid にリンクされています。
ClientDataSet で挿入または編集を行います。各フィールドの clientdataset に導入されたデータを確認するにはどうすればよいですか? Web フォームでユーザーからの入力を検証できないため、ClientDataSet イベントを使用して検証を行う必要があります。
LE: ユーザーが入力したときにデータを検証したい。onbeforepost イベントではありません。そのため、clientdataset を編集/挿入に入れました。ユーザーはグリッドに入力を行い、次の画像のように clientdataset のその行のデータを検証したいと思います。
最初の列は文字列、2 番目の列は整数、3 番目の列も整数です。ここで、ユーザーが入力を行った後、3 番目の列を検証したいと思います。この検証は (可能であれば) clientdataset イベント/ハックを使用してのみ行う必要があります。
delphi - 「OnCalcFields」イベントを手動で実行するにはどうすればよいですか?
TClientDataSet での時間のかかる操作中に、一時的にOnCalcFields
イベントを無効にしたいとします (例: を設定することにより)。cdsCalcFields := nil
メソッドを再アタッチするときに計算フィールドの再計算を実行するように TClientDataSet に指示するにはどうすればよいOnCalcFields
ですか?
手動での再計算が必要になる可能性のある別の状況としては、一部の計算フィールドが他のデータセットに依存している状況があります (たとえば、計算フィールドが他のデータセットからの集計値を一時的に保持するために使用されている場合など)。OnCalcFields
イベントは他のデータセットから正しい値を取得するのに十分な頻度で実行されるため、ほとんどの場合、これは問題なく機能します。ただし、状況によっては、他のデータセットから正しい値を取得するために再計算が必要になることがあります。
AutoCalcFields
プロパティを に設定するFalse
と、手動での再計算が必要になる場合もあります。
イベントの実行を減らす方法についていくつかの説明を見てきましたOnCalcFields
が、再計算を実行する簡単な方法が見つかりません...
助言がありますか?
delphi - Delphi: 更新の適用時にネストされたデータセットのマスター情報にアクセスする
ネストされたデータセットに更新を適用するときにプロバイダーのイベントで親データセット情報 (などMyField.NewValue
)にアクセスできますか?BeforeUpdateRecord
理由:
ネストされた詳細を持つ CDS に更新を適用すると、基になるクエリ ( TIBCQuery
) によってマスター PK が生成され、マスター CDS に伝達されます。
BeforeUpdateRecord
ただし、フィールドが で更新されるため、新しいキーは詳細には表示されませんAfterUpdateRecord
。
デルタはまだマージされていません。
詳細の呼び出しが発生したときに、イベントのDeltaDS
パラメーターにはBeforeUpdateRecord
、ネストされたデータセットへの情報のみが含まれているようです。
次のようなことができればいいのですが:
編集:
ネストされたデータセットを使用する場合、BeforeUpdateRecord
イベントはマスター用に 1 回、詳細用に 1 回 (両方のレコードが 1 つある場合) の 2 回呼び出されます。イベントが詳細に対して呼び出されたときに、に含まれるマスター情報にアクセスする方法はありDeltaDS
ますか?
変更がまだマージされていないため、現時点ではマスター CDS のデータにアクセスできません。これがこれ以上の混乱を招かないことを願っています。