問題タブ [cursors]
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.
sql - レコードセットを作成するためのT-SQLループ
データベースの厄介な獣に対して作成する必要のあるストアドプロシージャがいくつかあります。テーブル(アプリケーション)をループし、アプリケーションテーブルのapplication_idを使用して、他のテーブル(一部は誇張/平均/ etc値)から値を引き出す必要があります。
これまでのところ:
それは私が望む結果を私に与えています、しかし私はこれをするよりきれいな方法があると確信しています、そして私はこれを正しくするために今日精神的なジャンプをすることができないようです。これは私には本当に醜いように見えるので、誰かがこれを行うためのより良い方法を指摘できますか?
また、SELECTステートメントを1つずつ実行するのではなく、これらの値を一時テーブルに格納してから、完全な結果を返す必要があるようです。
任意の提案をいただければ幸いです。
ありがとう。
database - カーソルと重複するコード/ロジック
カーソルは DBMS にとって「不自然」であり、パフォーマンスが低下するため、カーソルを使用するのは良くないと聞きました。
しかし、次の状況を想像してみてください。ストアド プロシージャがあり、フランスからのすべての顧客に対してこのストアド プロシージャを呼び出す必要があります (たとえば)。カーソルを使用する、すべてのものを 1 つのクエリに書き込む、クライアント側アプリケーションからすべての顧客のストアド プロシージャを呼び出すなど、いくつかのオプションがあります。
1 つのクエリですべてのものを記述すると、既存のストアド プロシージャからコード/ロジック/クエリ全体が複製される可能性が高くなります。そして、それは「臭いアプローチ」のように見えます(「リファクタリング」の本を読んだ場合)。ロジックはもはや 1 か所にカプセル化されていません。
どう思いますか?
PS。カーソルが悪い、またはそうでない理由を説明しているドキュメントへのリンクは大歓迎です。
oracle - sys_refcursor 内で Oracle カーソルを使用する
渡した ID に基づいて sys_refcursor を返す PL/SQL パッケージがあります。いくつかの ID を反復処理し、ID ごとに繰り返される元の結果セットから 1 つの列を含む新しい ref カーソルを作成したいと思います。(一種のクロス集計です。) PL/SQL ブロックの非常に簡略化されたバージョンは次のようになります。
こんなものがあったらと思います
作業中、そこから取得できます...何か考えはありますか?または、おそらく私が尋ねるべき質問の明確化。
user-interface - さまざまな Tk カーソルは何を意味しますか?
私のGoogle-fuは私を失敗させています。次のことを考慮してください: http://tcl.activestate.com:8000/man/tcl8.4/TkCmd/cursors.htm
私が簡単に理解できるカーソルのいくつかは、「watch」はユーザーに待つように指示し、「left_ptr」はカーソルの下で何かを選択できることを示し、「hand2」は「何かをドラッグしている」カーソルのようです。
他の慣習は何ですか?参照はありますか?
具体的には、DragDrop ソースの上にカーソルを置いたときに「ここからドラッグできます」と表示されるカーソルを探しています。「hand1」を使ってきましたが、それは慣例ですか?
sql - SQL ユーザー定義関数とストアド プロシージャの分岐
私は現在、レガシーアプリケーションに取り組んでおり、怪しげな SQL を継承しています。このプロジェクトはまだ生産されていませんが、現在進行中です。最初のテスト中に、バグが見つかりました。アプリケーションは、他の多くのストアド プロシージャを呼び出すストアド プロシージャを呼び出し、カーソルを作成し、カーソルをループ処理し、その他多くのことを行います。FML。
現在のアプリの設計方法では、ストアド プロシージャを呼び出してから、新しいデータ セットで UI を再読み込みします。もちろん、表示したいデータはまだ SQL サーバー側で処理されているため、UI の結果は表示された時点では完全ではありません。これを修正するために、UI をロードする前にスレッドを 30 秒間スリープさせました。これはひどいハックであり、SQL 側でこれを適切に修正したいと考えています。
私の質問は...分岐ストアド プロシージャを関数に変換する価値はありますか? これにより、メインラインのストアド プロシージャは、処理を行う前に戻り値を待機するようになりますか?
ストアド プロシージャは次のとおりです。
呼び出し元の .NET アプリケーション UI に不完全な結果セットが表示されないようにするために、分岐呼び出しのカーソルが完了する前に、これらのストアド プロシージャを戻り値を持つ関数に変換する価値はありますか? これにより、[ALLOCATED_BUDGET] ストアド プロシージャへのメイン コールが完了する前に SQL が待機することになりますか?
- ストアド プロシージャ内の最後の SQL ステートメント呼び出しにより、ステータスが "割り当て済み" に設定されます。これは、前の呼び出しのカーソルの処理が完了する前に発生しています。これらの呼び出しを関数呼び出しにすると、ストアド プロシージャがアプリケーションにフォーカスを返す方法に影響しますか?
フィードバックは大歓迎です。SQL 関数を使用することは正しいと思いますが、100% 確実ではありません。
** 追加情報:
- コードを実行すると、接続文字列で [async=true] が使用されます
- コードの実行は [SqlCommand].[ExecuteNonQuery] メソッドを使用します
asp.net - ASP.NET コントロールのカスタム カーソルを追加する方法は?
カスタム マウス カーソル (たとえば、C:\Windows\Cursors ディレクトリのカーソル) を ASP.NET ユーザー コントロールに追加するにはどうすればよいですか?
本当にありがとう、
だってばよ...
sql - その場で SQL UPDATE ステートメントを作成する
複数のテーブルのデータを更新中です。現在、「sources」フィールドが 1 つあるテーブルがあります。これは、「itemid」フィールドを含むすべてのテーブルのリストです。「itemid」と「olditemid」の 2 つのフィールドを持つテーブルもあります。TSQL では、ソースを繰り返し処理し、その場で更新ステートメントを作成したいと考えています。これが私がやろうとしていたことですが、更新ステートメントで変数が宣言されていないというエラーが発生します。これが私がこれを行うべき正しい方法に近いかどうかはわかりません。アイデア?
sql - SQL Server でデータベース カーソルを避ける
私は(少なくとも私にとっては)ちょっとしたパズルを持っていますが、それは主に、私がまだ宇宙のSQLマスターではないからだと思っています。基本的に私は3つのテーブルを持っています:
表 A、表 B、および表 C。
テーブル C にはテーブル B への FK (外部キー) があり、テーブル B にはテーブル A への FK があります (これらはそれぞれ多対 1 です)。
テーブル A からエントリを削除する必要があり、もちろんテーブル B と C からも対応するすべてのエントリを削除する必要があります。これまでは、カーソルを使用してこれを行い、テーブル B のすべてのエントリを選択し、それぞれを循環して削除していました。表Cの対応するすべてのエントリ。これで機能します-そして正常に機能していますが、カーソルを使用せずにこの効果を達成するためのより良い方法があると思います/願っています. それが私の質問です。カーソルを使用せずにこれを行うにはどうすればよいですか、またはそれを行うことができますか?
(私がはっきりしていない場合はお知らせください - 質問を修正しようとします)。
database - データベースカーソルは、基になるデータへの変更を取得しますか?
カーソル(特にOracleカーソル)に関する簡単な質問。
IDと名前の2つの列を持つ「my_table」というテーブルがあるとします。何百万もの行がありますが、名前の列は常に文字列「test」です。
次に、次のPL/SQLスクリプトを実行します。
これを実行しているときに、次のSQLを実行します。
PL / SQLブロックのカーソルはその変更を検出し、「エラー・エラー・エラー」を出力して終了しますか?または、変更をまったく取得しません...またはmy_tableの更新を許可しますか?
ありがとう!