問題タブ [datasnap]
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 - 最高の Delphi n 層低帯域幅テクノロジーは何ですか?
一元化されたデータおよびファイル ストレージ システム(ドキュメント イメージング用)を必要とする環境に Delphi アプリを展開する必要がありますが、相互接続が比較的貧弱な複数のブランチ オフィスがあります。3 層データベース アプリケーションが最善の方法であると考えているため、比較的軽量なデータ転送のニーズでリッチなデスクトップ エクスペリエンスを提供できます。ここまで、Delphi Datasnap、kbmMW、および Remobjects SDK について簡単に説明してきました。kbmMW と Remobjects SDK が使用する帯域幅が最も少ないようです。かなりの数のユーザー (700 以上をサポートする必要があります) が存在する困難な環境で、これらのテクノロジのいずれかを展開した経験がある人はいますか? ありがとう!
delphi - Datasnap : 接続損失をグローバルに検出する方法はありますか?
ローカル接続の切断を検出しようとしています。Corelabs コンポーネントのイベントと同様に、それを行う手段はありますか?
ありがとう
編集: 申し訳ありませんが、より具体的にしようと思います: 現在、datasnap 2009 を使用してプロトタイプを設計しています。つまり、シン クライアント、ステートレス サーバー アプリ、およびデータベース サーバーがあります。
私ができることは、クライアントとサーバーアプリ間の接続損失(インターネット接続)を検出して処理し、適切に処理することです。つまり、ユーザーに有益なエラーメッセージを表示するか、サーバーのシャットダウンを検出して静かにリダイレクトします別のアプリ サーバー。
ODAC コンポーネントで管理していた 2 層では、TOraSession にこの問題を処理するためのイベントがいくつかあります。
delphi - クライアントがまだ接続している間に DataSnap サーバーを更新するにはどうすればよいですか?
一部のビジネス ロジック タスクにはステートフルな DataSnap サーバーを使用し、クライアント データセット データを提供します。
ビジネス ルールを変更するためにサーバーを更新する必要がある場合は、新しいバージョンを新しい空のフォルダにコピーして登録します (Delphi のバージョンに応じて、TRegSvr ユーティリティを起動または実行するだけです)。
これは、古いサーバー インスタンスの実行中でも実行できます。ただし、新しいバージョンを登録した後は、すべての新しいクライアント接続で、現在実行中の (古い) サーバー インスタンスが引き続き使用されます。最初にすべてのクライアントを切断する必要があります。その後、新しいサーバーが次のクライアントに使用されます。
登録直後に、すべての新しいクライアント接続を新しいサーバーに転送する方法はありますか?
(新しいまたは変更されたメソッド署名にはクライアントの変更と再起動も必要であることは知っていますが、この質問はインターフェイスに影響を与えない内部変更に関するものです)
ソケット接続を使用しており、すべてのクライアントが同じサーバー アプリケーションを共有しています (1 つのアプリケーション ウィンドウのみが開いています)。初期の頃は、クライアントごとに 1 つのアプリ ウィンドウになるリモート データ モジュールの別の構成を使用していました。多分これは解決策になるでしょうか?(すべての新しいクライアントが現在登録されている実行可能ファイルを起動するため)
更新: Delphi XE は、(更新されたサーバーの) 「ホット デプロイメント」をサポートしていますか? 現在、Delphi 2009 を使用していますが、「ホット デプロイメント」の実装がより簡単であれば、XE にアップグレードします。
delphi - DataSnap 2010 でインプロセス サーバー方式を使用する方法
サーバー メソッドを定義します。
メソッド EchoString は、同等の Value 文字列を返します。
次に、TDSTCPServerTransport を TDSServer および TDSServerClass と共に使用して、サーバー メソッドをラップします。
クライアント側では、DataSnap TSQLConnection を作成し、TServerMethodProxy クライアント クラスを生成します。
クライアント アプリケーションで TCP 接続を介して EchoString メソッドを使用できます。
上記のシナリオでは、通信プロトコルとして TCP/IP を使用しています。
ただし、ServerMethod をクライアントと共に「処理中」モデルとして展開したいと考えています。クライアントとサーバーのメソッドコードを変更せずにそれを達成するにはどうすればよいですか?
インプロセス接続を確立するには、TServerMethodClient.Create コンストラクターにどのパラメーターを渡す必要がありますか?
昔の DataSnap では、TLocalConnection を使用して、クライアント コードとサーバー コードの両方を変更せずに In Process アクセスを楽しむことができました。
delphi - TDSProviderConnectionを使用して、インプロセスDataSnapアプリケーションのTLocalConnectionを置き換えることはできますか?
インプロセスのDataSnapアプリケーションでサーバーメソッドにアクセスできます。詳細はこちらをクリックしてください。
ただし、インプロセスデータスナップアプリケーションには別の側面があります。これは、IAppServerまたはTDataSetProviderです。
Delphi 2009より前は、インプロセスデータスナップアクセスにTLocalConnectionでTConnectionBrokerを使用していました。新しいDelphi2009/2010DataSnapを使用すると、TDSProviderConnectionをRemoteServerとして使用できます。ただし、TCP/HTTP接続でのみ機能させることができます。インプロセスデータスナップアプリケーションにTDSProviderConnectionを使用できません。「無効なポインタ操作」を促すメッセージが表示されます。
これは私のコードがどのように見えるかです:
TEmployeeServerは、相互に接続するTDataSetProvider、TSQLDataSet、およびTSQLConnectionで構成されるTDSServerModuleクラスの子孫です。
ソースコードをトレースした後、TSQLDataSetが開いてデータセットをトラバースしたことがわかりました。問題の原因は、TDBXNoOpRowを使用する次の2つのメソッドに関連している必要があります
TDBXNoOpRowインスタンスはによって消費されます
TDBXNoOpRowは何もしないので、データパケットは上記の方法で転送されません。これがインプロセスメカニズムを使用した問題の原因であると思われます。
TLocalConnectionを破棄して、インプロセスDataSnapアプリケーションのTDSProviderConnectionに置き換えることができるかどうかわかりませんか?私はDBXソースコードを何日も追跡してきましたが、この問題の手がかりさえ見つけることができません。
delphi - DSProxyGEN.EXE を手動で呼び出して、Delphi DataSnap プロキシ クライアントを生成する方法を教えてください。
Delphi 2010 の DataSnap を使用しています。プロキシ クライアント ユニットを生成できるようにする DSProxyGen.EXE ユーティリティがあります。コマンド ラインでこのユーティリティを使用して、TSQLConnection のコンテキスト メニューを使用せずにプロキシ クライアントを生成する方法はありますか?
delphi - 制限されたユーザー アカウントで IIS の w3wp.exe を実行することは可能ですか?
Windows 7 と IIS 7 を使用しています。Delphi DataSnap ISAPI を作成しています。ISAPI dll で発生したバグを追跡したいと考えています。
「w3wp.exe -debug」を使用すると、Delphi IDE で ISAPI dll をデバッグするのに役立つ場合があることを学びました。ただし、管理者グループではなく、制限されたユーザー アカウントで ISAPI をデバッグしたいと考えています。
w3wp.exeを実行する前に、フォルダ「C:\Windows\System32\inetsrv\config」へのアクセス権を設定しました。ただし、w3wp.exe を起動する際に問題が発生します。イベントログは次のとおりです。
w3wp を実行する前に IIS サービスを停止しました。
何か案は?
linux - Linux サーバーで実行する Remote DataModule を作成する方法は?
これを行うための解決策があるかどうか知りたいです。誰かいますか?
全体像: Delphi シン クライアントを使用して、Web 経由でデータにアクセスしたいと考えています。しかし、私は自分のサーバー/サービスをパスカルで書き続けたいと思っています。
「そうではない」全体像: Delphi で ClientDataSets への SOAP Midas パケットをエミュレートする php を作成しようとしていますが、それを行うために必要な筋肉が脳にありません。したがって、dbexpress を FPC に変換しようとすることはできますが、これが合法かどうかはわかりません。
皆さん、PHP、java、c#/asp、python、ORM などの機能が役立つことはわかっていますが、私は GUI の専門家です。cobol で 10000 行のレポートをプログラムしたことのある人なら誰でも、私が話していることを知っています。私は自分の SOAP 接続をネット上のサーバー (私はサービス プロバイダーを所有していません) に向けて、顧客を満足させたいだけです。シンプルな...
delphi - DataSnapを使用した大きなストリーム
DataSnapサーバー/クライアント間でいくつかの大きなストリーム(〜1Mb)を転送しようとしていますが、役に立ちません。ジム・ティアニー( http://blogs.embarcadero.com/jimtierney/2009/04/06/31461 )のコードをうまく理解しようとしていますが、ライブラリがないためにコードをコンパイルすることさえできません。とりあえず ...
私が受信できるストリームの最大サイズは64kなので、私のような週末のプログラマーに提供できるヒント/アイデア/コードサンプルは大歓迎です。ありがとうございました!
私のサーバーコード:
私のクライアントの呼び出しコード: