問題タブ [cfstoredproc]

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

sql - cfstoredproc からの RAISEERROR メッセージへのアクセス

状況によっては、失敗した場合に -1 の結果を返す SQL ストアド プロシージャがありますが、RAISERROR コマンドを介してメッセージを返します。

cfstoredproc を使用して coldfusion 経由でこれにアクセスしています。

ただし、返される構造には、ExecutionTime キーと StatusCode キーしか含まれていません。返されたエラー メッセージにアクセスする方法はありますか。例) ユーザーに表示する。

ありがとう、

トム

ps 「cfstoredproc」でタグ付けしますが、新しいタグを作成できません。

0 投票する
2 に答える
452 参照

variables - バインド変数とは

ユーザーを認証する cffunction (cfc ドキュメント内) があります。これはストアド プロシージャを参照し、型が「out」の cfprocparam を持っています。Adobe CFML リファレンスでは、「パラメーターはデータベース システムからのみデータを受信するために使用されます。パラメーターはバインドされた変数として渡されます」という意味です。

バインド変数とは

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

oracle - cfprocparamを使用してOracleに配列またはリストします

ストアドプロシージャを介してテーブルに挿入したい値のリストがあります。配列をOracleに渡し、その配列をループすることを考えましたが、配列をOracleに渡す方法がわかりません。リストを渡しますが、リストを操作してPL / SQLを使用してリストを配列に変換する方法がわかりません(PL / SQLはかなり新しいです)。私はこれに間違った方法でアプローチしていますか?

Oracle9iおよびCF8を使用します。

編集

おそらく私はこれについて間違った方法で考えていますか?ここでは何も新しいことはしていないと確信しています...Oracleはリストをうまく処理できないように見えるため、リストを連想配列に変換してから配列をループすることにしました(私の限られた観察では)。

製品を追加してから、管理チームのレコードを追加しようとしています。
-製品表

productName ='foo' productDescription ='bar'......など

--managementteamテーブルには、製品のIDとドロップダウンから選択したユーザーのIDが含まれています。

ユーザーIDは、「1,3,6,20」のようなリストを介して渡されます

管理チームのテーブルにレコードを追加するにはどうすればよいですか?


これが私がコードに関して賢明なところです

理論的には、リスト「1,2,3,4」をinserts.addProductに渡します。
inserts.addProductはtools.listToArrayを呼び出し、配列を返す必要があります。
inserts.addProductは、テストとして*delimを使用してリストを再作成します。
パッケージツールを作成または交換する

現在、localArray array_type:= tools.listToArray(inList);で「PLS-00382:式が間違ったタイプです」というエラーが発生しています。


最終的に機能するコード(どうもありがとう!)

--SQLタイプコレクションを作成します

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

oracle - 解析されたステートメントがなく、引数の数またはタイプが間違っている-cfstoredproc

Oracleプロシージャがあります-cfstoredprocを介してCFMページから呼び出しているeditBacklog。プロシージャにいくつかの変更を加えた後、 ORA-06550:行1、列7:PLS-00306:'EDITBACKLOG'の呼び出しで引数の数またはタイプが間違っています。私は以前にこれを取得しましたが、プロシージャの名前を変更すると、再び機能し始めることがわかりました。名前をeditBacklog2に変更しましたが、期待どおりに機能しました。名前をeditBacklogに戻したところ、同じエラーが発生しました。名前を再びeditBacklog2に戻し、ORA-01003の取得を開始しました:ステートメントが解析されませんでした。名前を除いて、この時点では何も変更されていません。名前をもう一度editBacklog3に変更しましたが、期待どおりに機能します。

現在のところ、
editBacklog = ORA-06550
editBacklog2 = ORA-01003
editBacklog3 =動作します(ちょっと)

このすべては、ORA-01821:日付形式が認識されないというエラーを修正しようとしたときに始まりました。私が物事を変え始めるとき、私は上で説明されたのと同じ不完全な振る舞いをし始めるのではないかと恐れています。

OracleかCFのどちらかが私をいじっていて、私はそれらの1つがそれのためにあまり好きではなくなるでしょう。

おそらくcfstoredprocのキャッシュメタデータか何かだと思いますが、google、livedocs、OTNのいずれも私の状況について多くを語ることはありません。

私はSAでもDBAでもありません。

誰かアイデアはありますか?

0 投票する
2 に答える
538 参照

caching - キャッシュ結果

<cfstoredproc>タグの結果をキャッシュする方法はありますか?この<cfquery>タグを使用すると、属性を簡単に使用できcachedwithinますが、の機能はないようです<cfstoredproc>

単純なものが欠けているのでしょうか、それともこの機能がColdFusionに欠けているだけなのですか?

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

excel - ユーザーがグリッドを XLSX ファイルにエクスポートできるボタンを CFGRID に追加できますか? どのように?

CFSTOREDPROC プロセスからの情報を表示するレポート アプリケーションに取り組んでいる Coldfusion 開発者です。クエリからデータを取得して CFGRID に正しく表示することができました。データの表示には非常に満足しています。グリッドを使用すると、CFOUTPUT タグを使用したり、何百ものレポートの HTML でデータをフォーマットしたりする必要がなくなるため、時間を大幅に節約できます。

私がやりたいのは、データグリッド コントロールのどこかに単純なディスク アイコンを追加して、データグリッドの内容を保存し、それをエンド ユーザーがスプレッドシート プログラムで操作できる XLSX(2010) ファイルにエクスポートすることだけです。これは、1 年の特定の時期の「スナップショット」をデータに保存する必要があるため重要です。

試した解決策: レポート オプション ページから report_xls.cfm ページへのリンクを作成する方法を調べましたが、すべてのレポート オプションをもう一度キャッチするページを設計するのはばかげているようで、Web サイトに何千もの CFM を追加することになります。

CFSPREADSHEET は、さまざまな理由で機能しないようです。1 つは、サーバーがこのタグの「書き込み」機能で常に私と戦っているように見えることです。もう 1 つは、このボタンで JavaScript を機能させて、必要な出力を取得する方法がわからないことです。

また、入力されたデータに基づいて起動する Javascript ボタンとしてこれを行うことも検討しました。CFOUTPUT ブロックを使用すると CFSTOREDPROC からのデータは正しく表示されますが、CFGRID は HTML 以外のすべての出力スタイルで苦労しているようです。アプリケーションは適切な HTML テーブルを出力せず、代わりに JavaScript ページ セクションを送信するため、これらのソリューションで問題が発生しました。

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

sql-server - SQL ストアド プロシージャ内の SELECT ステートメントと ColdFusion 内の対応するクエリの検索

ColdFusion では、次の cfstoredproc が 3 つの入力と 6 つの出力で呼び出されています。

ストアド プロシージャ内で、si_updateProjectresultSets にリストされている 6 つの resultSet クエリを特定するにはどうすればよいですか? ストアド プロシージャには、いくつかのステートメント (select、updates、delete など) があります。

0 投票する
3 に答える
1233 参照

sql-server-2008 - ColdfusionCFSTOREDPROCはテーブルを返しません

私はColdfusion9とSQLServer2008を使用しています。プラットフォームを学び、レポートソリューションに両方のプラットフォームを効果的に活用する方法を実際に学ぼうとしています。ストアドプロシージャ、つまりsprocでいくつかの大きな課題がありました。私が欲しいのは、sprocをCFMLで活用して、それを必要とする人々にデータを取得できるようにするための非常に簡単な答えです。

オンラインで調査を行ったところ、SQL Server 2008は、RAM(@)に配置されているか、ローカルユーザー(#)のディスクに書き込まれている一時テーブルを利用しているようです。私の問題は、生成された一時テーブルがプロセス呼び出しからColdFusionにデータを返すように見えないことですが、SQL Serverの一時テーブルに追加されるSQLクエリの部分を実行すると、魅力。簡単なテーブルをColdFusionに返し、これを可能な限り最も効率的な方法でコーディングしていることを確認するだけです。

私は試しました:-Returnステートメントを使用しましたが、これはRAMテーブル(@)で構文エラーを生成するようです。-永続的な一時テーブルの使用(#)-さまざまなオンラインフォーラムがこれを使用すると考えているようですが、アプリケーションはこれを行うことでパフォーマンスに大きな打撃を与えます。(誰もが批評家です。)

私の目標は次のとおりです。-このプロセスを学習し、可能な限り再利用できるようにする-クエリが可能な限り実行されるように、これを行う正しい方法を学習します。-SPROCSで(@)および(#)一時テーブルを使用する状況とその理由を理解します。永続的な一時テーブル(#)は、コンパイル中に起動された他のsprocのためにRAMを解放するので優れていると考える人もいれば、サーバーをハードディスクに移動させてデータを書き込むのは遅いと考える人もいます。-以下の構文が機能しない理由を理解する

現在、私のCFMLコードは次のようになっています。

そして、私のSQLServerコードは次のようになります。

0 投票する
2 に答える
681 参照

tsql - cfstoredproc と cfquery で異なる結果

経由でストアド プロシージャを実行すると、 経由cfstoredprocでそのストアド プロシージャを呼び出す場合とは異なる結果が得られcfqueryます。各呼び出しにまったく同じパラメーター値を渡しています。また、SQL Studio でストアド プロシージャを実行すると、正しい結果が得られます (cfquery と同じ)。

cfstoredproc通話はこちら

これがcfquery呼び出しです

結果はまったく異なります。近くにもありません。私はこれについて数時間頭を悩ませてきましたが、なぜそれが何をしているのか理解できません。

アップデート

ストアド プロシージャは大規模です (そして私が継承したものです)

0 投票する
2 に答える
1199 参照

coldfusion - CFStoredProc タイムアウト

私は、レコードセットを返すストアド プロシージャにデータをプラグインする非常に基本的なアプリを持っています。私は「タイムアウト」と思っていたものを経験しています。しかし、これが実際に起こっていることであるとは、もはや確信が持てません。その理由は、DBA と私が SQL Server スポットライトを見て、ストアド プロシージャの処理がいつ終了したかを確認したからです。プロシージャが処理を終了してレコードセットを返すとすぐに、ColdFusion ページが「タイムアウト」エラーを返しました。手順に1分以上かかる場合は常に、これが一貫していることがわかります。これを証明するために、私はこれ以上のストアド プロシージャを作成しました。

59 秒間実行すると、ColdFusion に結果が返されます。1 分に変更すると、次のようになります。

cfstoredprocタイムアウト エラーが発生します。同じサーバー、異なるデータベース/データソース上の ColdFusion の異なるインスタンスでこれを実行しようとしました。さて、奇妙なのは、1 分以上実行して結果を返す他のプロシージャがあることです。ColdFusion 10 を使用してデスクトップでローカルにこれを試しても、同じ結果が得られました。この時点で、探す場所がなくなったので、他のことを試すために手を差し伸べています. データソース接続のタイムアウトも増やしましたが、役に立ちませんでした。タイムアウト属性を使用して ColdFusion 10 を試してみましたが、運もありませんでした。一貫しているのは、クエリが完了するとタイムアウト エラーが表示されることです。

また、WAITFOR を追加してみましたがcfquery、同じ結果になりました。59 秒に設定すると機能しましたが、1 分に変更するとタイムアウトしました。トップ1を選択するようにSQLを変更できますが、結果に違いはありません。