問題タブ [midas-server]
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 - Midas/DataSnap プロジェクトでの DUnit テスト
Delphi 2006 の Midas/DataSnap プロジェクトで DUnit テストをセットアップする方法
編集
Dunit テストを TRemoteDataModule に設定する方法 Delphi 2006 のプロジェクト ウィザードは TRemoteDataModule では機能しません
delphi - Datasnap : 接続損失をグローバルに検出する方法はありますか?
ローカル接続の切断を検出しようとしています。Corelabs コンポーネントのイベントと同様に、それを行う手段はありますか?
ありがとう
編集: 申し訳ありませんが、より具体的にしようと思います: 現在、datasnap 2009 を使用してプロトタイプを設計しています。つまり、シン クライアント、ステートレス サーバー アプリ、およびデータベース サーバーがあります。
私ができることは、クライアントとサーバーアプリ間の接続損失(インターネット接続)を検出して処理し、適切に処理することです。つまり、ユーザーに有益なエラーメッセージを表示するか、サーバーのシャットダウンを検出して静かにリダイレクトします別のアプリ サーバー。
ODAC コンポーネントで管理していた 2 層では、TOraSession にこの問題を処理するためのイベントがいくつかあります。
oracle - ADO + Oracle を使用した Delphi 6 は異なる精度で NUMBER を返し、BCD オーバーフローを生成します
Delphi 6 + Oracle 10gR2 + ADO + ClientDataSet に問題があります。
フィールド NUMBER(19,9) で集計関数を実行すると、結果の列は Delphi に NUMBER データ型を返し、一部のマシンでは精度 38 の TBCDField としてロードされ、すべてがうまくいきますが、一部のマシンでは精度 255 の TBCDField としてロードされ、フィールドで BCD オーバーフローが発生します。
問題を再現するには、列 NUMBER (19,9) を持つテーブルを作成し、SELECT SUM( column_name ) column_name FROM table_name GROUP BY column_nameを実行します。
列が NUMBER(19,9) であるにもかかわらず、結果の列は精度が定義されていない NUMBER になります。
Delphi で、DataSetProvider がリンクされ、ClientDataSet が DataSetProvider にリンクされた状態で、クエリを ADOQuery にロードします。ClientDataSet.Open を呼び出した後、一部のマシンでは NUMBER フィールドに BCD オーバーフロー メッセージが表示されますが、多くのマシンでは問題なく動作します。
midas.dll、ADO、サーバー、ユーザー、Oracle クライアントが両方のマシンですべて同じであるのに、一部のマシンでこの 255 の精度が得られるのはなぜですか? 何か案は?
delphi - TClientDataset の ReconcileError メソッドで複数のレコードの更新エラーを処理する
ReconcileError イベントを使用して、特に特定のレコードで発生した更新エラーの後にユーザーがデータを修正できるようにしようとしています。
例:
1 つのフィールドと 3 つのレコードを持つデータセットがあり、このフィールドにはデータベースに一意の制約があり、データベースに到達したときに 1 つの値を競合するように変更し、データセットで ApplyUpdates を呼び出します。
これにより、プロバイダーでエラー (一意の制約違反) が生成され、applyupdates プロセスが中止され、ReconcileError メソッドの Action var で raAbort が返されます。
ReconcileError メソッドで使用しようとしました:
** 編集 **
サーバーから返された DataSet レコードをデバッグしてダンプした後、この Dataset に 2 つのレコードがあることに気付きました。
少し混乱しています。この DataSet は常に 2 つのレコードで取得されますか? 古い/新しい値を持つレコードは 1 つだけにする必要があると考えました。
ありがとう。
delphi - ネストされた TClientDataSet で「外部キー」フィールド名を見つける方法は?
ネストされた TClientDataSet が与えられた場合、詳細 TClientDataSet でリンク フィールド名を見つけるにはどうすればよいですか?
ある TClientDataSet から別の TClientDataSet に (レコードごとに) データをコピーしていますが、リンク フィールドを自動的に無視したいと考えています。
TClientDataSet.Data プロパティを使用してデータをコピーすることもできますが、それでもリンクとキー フィールドをクリアする必要があります。
delphi - TBlobField.OldValue は、BeforeUpdateRecord および AfterUpdateRecord イベントで常に null を表示します
次の構造を持つ単純なデータセットがあります。
データセットには 1 つのレコードがあります。次に、TClientDataSet インスタンスで TDataSetProvider を介してデータセットを取得し、データを変更して ApplyUpdate を実行します。TDataSetProvider の BeforeUpdateRecord および AfterUpdateRecord イベントをトリガーします。
ただし、ftBlob フィールドの OldValue は常に Null を示しますが、ftMemo および ftString フィールドは Null ではありません。
ftMemo フィールドも正しい結果を返しませんが。ftMemo フィールドの OldValue は常に空の文字列です。
この問題をRSP-15519に報告しました。サンプル プロジェクトもそこからダウンロードできます。
これがミダスのデザインなのだろうか?それともバグですか?
delphi - Delphi DataSnap で複数のネストされたデータセットをフェッチする
DataSnapを使用するDelphiクライアント サーバー アプリケーションがあります。クライアント側には、ネストされたクライアント データセットのチェーンがあります ( cdsMaster
-> cds1
-> cds2
-> cds3
)。
サーバー側には、マスターと詳細の関係を持つ同様のデータセットのセットがあります。
まず、コンテンツをcdsMaster
1 回 (詳細なしで) 取得し、次にオンデマンドで完全な詳細を1 つのパケットで取得する必要があります (選択したマスター レコードのcds1
、cds2
、のすべてのネストされたコンテンツ)。cds3
これを実装する最良の方法は何ですか?
poFetchDetailsOnDemand
のオプションを無効にするとprvMaster
、接続時にデータベース全体がロードされます。有効にすると、詳細レコードが 1 つずつ取得されるため、トラフィックのオーバーヘッドが大きくなり、パフォーマンスが低下します。