問題タブ [delphi-10.2-tokyo]

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 に答える
279 参照

rest - EMS ドキュメント属性を使用して YAML ドキュメントを作成する方法

RAD サーバーの実験を始めたところです。投資を魅力的にする機能の 1 つは、自己文書化 API の機能です。これにより、REST インターフェイスに接続する外部パートナーをサポートするための多くの作業が節約され、常に遅れをとってしまう別のインターフェイス仕様ドキュメントを維持する必要がなくなります。開発。

最初の EMS リソースを作成するための wiki のチュートリアルに従って、テスト用の EMS サーバーにデプロイしました。これは問題なく正常に動作します。

しかし、カスタム API ドキュメントのチュートリアルにたどり着くと、単に機能しません。

SWAGGER / YAML AND SELF DOCUMENTING RESTFUL API'Sに関する Stephen Ball の投稿を見てきました。残念ながら、彼は RAD Studio EMS Sample プロジェクトを使用していますが、これは私にとっても完璧に機能します。しかし、同じ属性を自分の EMS パッケージに適用しようとすると、うまくいきません。

htt://localhost:8080/api/apidoc.yaml を呼び出すと、サーバーは次のように返します。

EMS 開発サーバーには、次の対応するログ エントリがあります。

チュートリアルからの私のコードのスニペットは次のとおりです。

サンプル プロジェクトには、RAD Studio EMS パッケージ ウィザードによって生成されたコードに欠けているものがあるようです。

新しい EMS ドキュメント属性を使用して、RAD Studio で提供されているサンプル プロジェクトではなく、独自の EMS パッケージから YAML ドキュメントを作成できた人はいますか?

他の誰かがこれを経験しましたか?get メソッドが完全に実装されていない可能性はありますか。これに対する修正はありますか (RAD Studio 10.2.1 にアップデートしたばかりです)?

0 投票する
0 に答える
430 参照

delphi - Delphi REST リクエストの非同期は TList に入力できません

これらの新しい型を宣言しました:

次のようなデータモジュールにプロシージャがあります。

ご参考までに、これは JSON 文字列です。

メイン フォームでは、次の方法でプロシージャを呼び出すことができます。


次の問題があります。変数myList: TRacersListは、フォームの OnCreate および OnDestroy イベントで作成および解放されます。このコードを実行しようとすると:

結果は 0 です。代わりに、aList.Add(tmp); OUTSIDEを非同期リクエスト (たとえば、パラメーターのセットアップの前) に配置すると、カウントは 1 になります。

これは、リストがの完了ハンドラーの外側にある場合はリストが満たされているExecuteAsyncが、リストが内側にある場合はそうでないことを意味します。何か案が?

デフォルトで Synchronize が True に設定されていることを確認したので、追加します

役に立たないでしょう。私は何をすべきか?この解析/残りのものをデータモジュールに入れたいので、インターネットのものをアプリの実装から分離しておくことができます。

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

linux - Delphi Tokyo for Linux : ファイルの内容を stdout にストリーミング (コンソール出力)

ファイルの内容 (この場合は Excel ファイル) をコンソール出力にストリーミングする方法について、かなり長い間調べてきました。Windows 用にコンパイルする場合、THandleStreamSTDOUT (コンソール出力) へのハンドルと組み合わせて使用​​するのは公園での散歩です。Win32 API を使用するため、Linux (ちなみに Debian) 用にコンパイルする場合は明らかに機能しません。

私はこれに相当するものを探しています:


更新: 以下は Windows で動作するようですが、Linux に切り替えるとすぐにコンパイルされないため、PAnsiChar不明です。

役立つかもしれない何かを理解できますか?

更新

こんにちはレミー、

ご協力いただきありがとうございます。私はほとんどそこにいますが、まだ最後のビットに苦労しています。system.output に対して BlockWrite を実行できるはずだとおっしゃいました。ただし、BlockWrite は最初のパラメーターとして var F: File を想定していますが、System.Output は TEXT 型ですか?

さらに、読んでいるファイルの「File」ではなく「File of Byte」を使用していますが、コンソールへの出力用に適切に変換する方法がわかりません。

これは、この Linux POC の現在の状態です。

この部分は正常に動作します: details.xlsx を読み取り、内容を test.xlsx (基本的にはコピー) に書き込みます。宛先ファイルはソース ファイルと同じです。

この部分はまだ機能していませんが、最終的には必要なものです: details.xlsx の内容を stdout に書き込みます:

最終更新:

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

delphi - FDManager.DeleteConnectionDef が接続定義を削除しない

私のアプリには、TFDConnection別のデータベース (タイプ) に接続するときに再利用されるデザインタイムがあります。
また、その設定からプールされた接続を導出し、FDManager.AddConnectionDefマルチスレッド時に使用するためにこれを登録します (ここのように)。

これを 2 回目に設定したときにAddConnectionDef、同じ ConnectionDefName で誤って再度呼び出しました。ドキュメントには次のように記載されています。

この名前は、ConnectionDefs リスト内の他の接続定義全体で一意である必要があり、そうでない場合は例外が発生します。

これは起こりません。例外は発生しません。同じ名前の 2 つの ConnectionDefs が発生するだけです。
興味のある方のために: 次のコード ブロックは、この動作を示しています ( Quality Portal の RSP-19107 )。これは私の当面の問題ではありませDeleteConnectionDef
しかし、それもうまくいかないことがわかりまし。2 番目のコード ブロックを参照してください。

以下は、DeleteConnectionDef失敗を示すサンプル コードです。を使用したり、開いたりしないことに注意してくださいTFDConnection

では、ここで何が起こっているのでしょうか?どうすれば修正できますか?

これは Delphi Tokyo 10.2.1
です。このコードを実行するには、フォームにTFDPhysFBDriverLinkandTFDPhysMSSQLDriverLinkを配置します。それらに対して .Release を呼び出してみましたが、役に立ちませんでした。


修正: コードを実行するために TFDPhysxxxDriverLink コンポーネントを配置する必要はありません。関連するユニットの存在は AddConnectionDefinition バグにとって不可欠であるため、文を残しています (承認された回答を参照)。


問題解決:FireDAC.Stan.Def.pasおよびのパッチはFireDAC.Comp.Client.pas、そのRSP-19107リンクから入手できます。