問題タブ [objectscript]
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.
intersystems-cache - 「csp intersystem cache object」で現在の URL を取得する
cspキャッシュ言語で現在のURLを取得できるので? mvを使用せずに。
また、現在のドメインを取得したい、つまり、この URL www.midominio.hn / assets / hola.csp がある場合
www.midominio.hn を入手
sql - InterSystems キャッシュ - 結合テーブルに挿入する方法は?
次の objectscript は、次の SQL テーブルを作成します。
オブジェクトスクリプト クラス
Parent_Children テーブルと列:
親がコマンドによって objectscript に保存され%Save()
、親の children プロパティに要素がある場合、この結合テーブルに行が自動的に作成されます。列には、列に行の主キーがあり、列に子行の主キーがID
あるような値が"15||1",
あります。 Parent
Parent
Children
SQL で、このテーブルの挿入ステートメントを作成するにはどうすればよいですか? ID列の値の作り方がわかりません。
shell - Unix サーバ上の Intersystems Caché で $SYSTEM.SQL.Shell() を使用して、%SYS.ProcessQuery からの結果のみを返します。
バックグラウンド
やあ、
Intersystems Caché データベースを使用する Unix ベースのアプリケーションを使用しています。私は Caché にあまり詳しくないので、入力できることを最近まで知りませんでした...
...データベースに入ります。ここから、%FREECNT
レポート、^DATABASE
ルーチン (データベースのサイズやその他のプロパティを表示/変更するため) $SYSTEM.SQL.Shell()
、.
. _ $SYSTEM.SQL.Shell()
_%SYS.ProcessQuery
クエリを正常に実行できます-例:
上記のクエリは、次の形式で結果を返します。
質問
上記の背景を考慮して、「SQL コマンド ライン シェル」のイントロ テキスト、列名、または行数フッターを使用せずに結果のみを返す方法を探しています。上記のように、Unix で .ksh スクリプトを記述して Caché に接続し、クエリを実行すると、含めたくない次のテキストと共に結果が返されます。
追加情報
awk
Unix コマンドを使用して、 andを使用してテキストの一部を除外できることはsed
わかっていますが、組み込みのもう少し簡単でクリーンな方法を探しています。このLINKsilent
の例のように、またはno_column_names
フラグを持つものかもしれません。
私の最終的なゲームは、クエリから情報を取得するスクリプトを実行し、その情報を使用して、特定のしきい値が満たされたときにデータベースに変更を加えることです。最終的には、定期的にスクリプトを実行するようにスケジュールを設定したいので、データベースにバインドする別のクライアント アプリを作成するのではなく、すべての処理をサーバー上で実行する必要があります。
syntax - プロシージャへの参照によってグローバルまたはプロセス プライベート グローバルを渡す方法
参照配列パラメータを受け取ることを期待する Caché ObjectScript プロシージャがあるとします。
ドット構文で参照することにより、通常の配列でそのプロシージャを呼び出すことができます。
しかし、グローバル参照でそれを実行しようとすると、ドット構文で構文エラーが発生します。
ObjectScript プロシージャへの参照によってグローバル配列を渡す正しい方法は何ですか? また、プロセス プライベート グローバルを渡すことができるようにしたい (^||Array
規約)
intersystems-cache - Caché ObjectScript の Try-Finally と同等
一般的な Try-Finally 例外クリーンアップ パターンと同等のセマンティクスを探しています。
コードが成功するか失敗するかに関係なく、クリーンアップ手順を実行する必要がありますが、クリーンアップ コードがエラーの報告と処理を妨げてはならないという考えです。まだ問題が発生しており、例外は引き続き伝播するはずです。
私はこのようなものを書きたいと思います:
ただし、ObjectScript の TRY...CATCH 構文は、FINALLY 句をサポートしていません。
特に、finally ブロックによって通常行われるこれらの両方が当てはまることが重要です。
- クリーンアップ コードは、エラーが発生した場合とすべてが正常に実行された場合の両方で、実行が呼び出し元に返される前に常に実行されます。
- エラーが発生した場合、コードの場所、コンテキスト、およびスタックを含む元のエラーが、呼び出しスタックを元の呼び出し元に伝達されます。クリーンアップ コードがデバッグを妨げないようにする必要があります。
通常の TRY...CATCH ブロックを単純に使用することはできません。なぜなら、CATCH は例外を食べて、正しいエラー コンテキストがチェーンに渡されないようにするからです。エラーコンテキストを台無しにすることなく、元の例外を再スローする方法があるのではないでしょうか?
intersystems-cache - Intersystems caché - プログラムで新しいクラスを作成する
名前空間に新しいクラスを作成してコンパイルする ObjectScript メソッドを作成することはできますか? つまり、プログラムで新しいクラスを作成して保存します。その場合、後で ObjectScript を使用してこのクラスを編集 (および再コンパイル) できますか?
理由: 文字列変数で定義されたクラス構造があり、この文字列に従って名前空間に新しいクラスを追加する必要があります。
intersystems-cache - Intersystems キャッシュ - SQL ストレージ定義
%Dictionary.StorageSQLMapDefinition クラスの Name プロパティを設定するには? 私はこのコードを持っています:
そして、storMaps.Name の設定方法がわかりません。Name プロパティのデータ型。ドキュメントによると、%Dictionary.SQLIdentifier です。しかし、このプロパティを設定する方法がわかりません。エラーが発生します:
SQL マップ タイプが無効です