問題タブ [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.
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 にアップデートしたばかりです)?
delphi - Delphi REST リクエストの非同期は TList に入力できません
これらの新しい型を宣言しました:
次のようなデータモジュールにプロシージャがあります。
ご参考までに、これは JSON 文字列です。
メイン フォームでは、次の方法でプロシージャを呼び出すことができます。
次の問題があります。変数myList: TRacersList
は、フォームの OnCreate および OnDestroy イベントで作成および解放されます。このコードを実行しようとすると:
結果は 0 です。代わりに、aList.Add(tmp);
OUTSIDEを非同期リクエスト (たとえば、パラメーターのセットアップの前) に配置すると、カウントは 1 になります。
これは、リストがの完了ハンドラーの外側にある場合はリストが満たされているExecuteAsync
が、リストが内側にある場合はそうでないことを意味します。何か案が?
デフォルトで Synchronize が True に設定されていることを確認したので、追加します
役に立たないでしょう。私は何をすべきか?この解析/残りのものをデータモジュールに入れたいので、インターネットのものをアプリの実装から分離しておくことができます。
linux - Delphi Tokyo for Linux : ファイルの内容を stdout にストリーミング (コンソール出力)
ファイルの内容 (この場合は Excel ファイル) をコンソール出力にストリーミングする方法について、かなり長い間調べてきました。Windows 用にコンパイルする場合、THandleStream
STDOUT (コンソール出力) へのハンドルと組み合わせて使用するのは公園での散歩です。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 に書き込みます:
最終更新:
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
です。このコードを実行するには、フォームにTFDPhysFBDriverLink
andTFDPhysMSSQLDriverLink
を配置します。それらに対して .Release を呼び出してみましたが、役に立ちませんでした。
修正: コードを実行するために TFDPhysxxxDriverLink コンポーネントを配置する必要はありません。関連するユニットの存在は AddConnectionDefinition バグにとって不可欠であるため、文を残しています (承認された回答を参照)。
問題解決:FireDAC.Stan.Def.pas
およびのパッチはFireDAC.Comp.Client.pas
、そのRSP-19107リンクから入手できます。