問題タブ [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.

0 投票する
2 に答える
1139 参照

delphi - Midas/DataSnap プロジェクトでの DUnit テスト

Delphi 2006 の Midas/DataSnap プロジェクトで DUnit テストをセットアップする方法

編集

Dunit テストを TRemoteDataModule に設定する方法 Delphi 2006 のプロジェクト ウィザードは TRemoteDataModule では機能しません

0 投票する
2 に答える
2653 参照

delphi - Datasnap : 接続損失をグローバルに検出する方法はありますか?

ローカル接続の切断を検出しようとしています。Corelabs コンポーネントのイベントと同様に、それを行う手段はありますか?

ありがとう

編集: 申し訳ありませんが、より具体的にしようと思います: 現在、datasnap 2009 を使用してプロトタイプを設計しています。つまり、シン クライアント、ステートレス サーバー アプリ、およびデータベース サーバーがあります。

私ができることは、クライアントとサーバーアプリ間の接続損失(インターネット接続)を検出して処理し、適切に処理することです。つまり、ユーザーに有益なエラーメッセージを表示するか、サーバーのシャットダウンを検出して静かにリダイレクトします別のアプリ サーバー。

ODAC コンポーネントで管理していた 2 層では、TOraSession にこの問題を処理するためのイベントがいくつかあります。

0 投票する
2 に答える
1550 参照

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 の精度が得られるのはなぜですか? 何か案は?

0 投票する
3 に答える
2580 参照

delphi - TClientDataset の ReconcileError メソッドで複数のレコードの更新エラーを処理する

ReconcileError イベントを使用して、特に特定のレコードで発生した更新エラーの後にユーザーがデータを修正できるようにしようとしています。

例:

1 つのフィールドと 3 つのレコードを持つデータセットがあり、このフィールドにはデータベースに一意の制約があり、データベースに到達したときに 1 つの値を競合するように変更し、データセットで ApplyUpdates を呼び出します。

これにより、プロバイダーでエラー (一意の制約違反) が生成され、applyupdates プロセスが中止され、ReconcileError メソッドの Action var で raAbort が返されます。

ReconcileError メソッドで使用しようとしました:

** 編集 **

サーバーから返された DataSet レコードをデバッグしてダンプした後、この Dataset に 2 つのレコードがあることに気付きました。

少し混乱しています。この DataSet は常に 2 つのレコードで取得されますか? 古い/新しい値を持つレコードは 1 つだけにする必要があると考えました。

ありがとう。

0 投票する
1 に答える
1245 参照

delphi - ネストされた TClientDataSet で「外部キー」フィールド名を見つける方法は?

ネストされた TClientDataSet が与えられた場合、詳細 TClientDataSet でリンク フィールド名を見つけるにはどうすればよいですか?

ある TClientDataSet から別の TClientDataSet に (レコードごとに) データをコピーしていますが、リンク フィールドを自動的に無視したいと考えています。

TClientDataSet.Data プロパティを使用してデータをコピーすることもできますが、それでもリンクとキー フィールドをクリアする必要があります。

0 投票する
1 に答える
664 参照

delphi - TBlobField.OldValue は、BeforeUpdateRecord および AfterUpdateRecord イベントで常に null を表示します

次の構造を持つ単純なデータセットがあります。

データセットには 1 つのレコードがあります。次に、TClientDataSet インスタンスで TDataSetProvider を介してデータセットを取得し、データを変更して ApplyUpdate を実行します。TDataSetProvider の BeforeUpdateRecord および AfterUpdateRecord イベントをトリガーします。

ただし、ftBlob フィールドの OldValue は常に Null を示しますが、ftMemo および ftString フィールドは Null ではありません。

ftMemo フィールドも正しい結果を返しませんが。ftMemo フィールドの OldValue は常に空の文字列です。

この問題をRSP-15519に報告しました。サンプル プロジェクトもそこからダウンロードできます。

これがミダスのデザインなのだろうか?それともバグですか?

0 投票する
1 に答える
513 参照

delphi - Delphi DataSnap で複数のネストされたデータセットをフェッチする

DataSnapを使用するDelphiクライアント サーバー アプリケーションがありますクライアント側には、ネストされたクライアント データセットのチェーンがあります ( cdsMaster-> cds1-> cds2-> cds3)。

サーバー側には、マスターと詳細の関係を持つ同様のデータセットのセットがあります。

まず、コンテンツをcdsMaster1 回 (詳細なしで) 取得し、次にオンデマンドで完全な詳細を1 つのパケットで取得する必要があります (選択したマスター レコードのcds1cds2、のすべてのネストされたコンテンツ)。cds3これを実装する最良の方法は何ですか?

poFetchDetailsOnDemandのオプションを無効にするとprvMaster、接続時にデータベース全体がロードされます。有効にすると、詳細レコードが 1 つずつ取得されるため、トラフィックのオーバーヘッドが大きくなり、パフォーマンスが低下します。