問題タブ [fmtonly]
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 - 入力パラメーターを知らなくても、ストアド プロシージャが返す列を取得するにはどうすればよいですか?
ストアド プロシージャを仮想的に実行し、返された列を取得したいと考えています。私はfmtonly以下のように使用します:
しかし、fmtonly を使用するとすべてのコード行が実行され、この作業の結果はエラーになります。この作業を行うための解決策はありますか?
tsql - SQL の無限エラー、FMTONLY
ASP Classic を使用してデータベースに接続していますが、存在しない proc を実行しようとすると、エラーは返されず、SQL プロファイラーは次の呼び出しを続けます。
そして、私のWebアプリケーションはエラーを待っています。
これが私のASPです:
誰でも私を助けることができますか?
わかりました。
java - () で負の数をフォーマットする JSTL fmt タグを取得するにはどうすればよいですか?
() で負の数をフォーマットする JSTL fmt タグを取得するにはどうすればよいですか? たとえば、-20 の場合、(20) と表示されます。正の数は正常です。
spring - Spring ResourceBundleMessageSource と FMT を使用した国際化
Spring ResourceBundleMessageSource と FMT を使用して国際化を実装しようとしています。しかし、JSP で使用すると、ページは値を???message.key???として表示します。. この動作を解決するためにご協力いただけますか? ご回答ありがとうございます。
以下は構成です。
spring-servlet.xml エントリ
JSP で、インポートしたものを追加しました
また、作成された戦争では、WEB-INF/messages フォルダーの下に msgs.properties ファイルがあります。
私たちが犯している間違いを特定するのに本当に感謝しています. ありがとうございました。
c# - SP が入力パラメーターとしてユーザー定義のテーブル型を持っている場合、EF リバース POCO ジェネレーターが自動リターン モデルを作成しない
EF 逆 POCO ジェネレーターを使用しています。.tt ファイルを保存すると、すべてのストアド プロシージャの戻りモデルが自動的に生成されます。
私のSPのいくつかでは、入力パラメータの1つとしてユーザー定義のテーブルタイプがあります。これらの SP の場合、私の POCO はリターン モデルを作成していません。以前、一時テーブルからの戻りクエリを使用した通常の SP でこの問題が発生しました。SPの上にSET FMTONLY OFFを追加すると、それが修正されました。
問題を引き起こしているユーザー定義のテーブル型を使用していると確信しています。それらを削除すると、戻りモデルが生成されるからです。これに対する修正を探しています。どんな助けでも大歓迎です。
sql - 列名のスペースに対する Fmtonly
いくつかの列を返す SP があります。各列名には次のようなスペースがあります
支店コード 支店名 (SP でエイリアスを割り当てています)
fmtonly off を使用しているときに、SP によって返された列名を取得しますが、fmtonly を on に設定すると、列名の間のスペースが削除されます。
fmtonly を on に設定しているときに、SP によって返される同じ列名を取得することは可能ですか?
ありがとう
ssis - SSIS で OLE DB ソースから 2 番目のデータセットを取得する
DB1 からデータを読み取り、別の DB2 に書き込む必要があります。CTE と一時テーブルで複雑なクエリを使用していますが、いいえ、このクエリを SProc に入れることはできません。OLE DB ソースと OLE DB 宛先を使用しています。
クエリを OLEDBSource に SQL コマンドとして配置すると、CTE が一時テーブルを使用しているため、メタデータを特定できないという通常の苦情が寄せられます。
SProc ではないため、「結果セットを使用する」回避策を使用できません。だから私は他の回避策、「SET FMTONLY ON/OFF」を試してみます。
OLE DB ソースはクエリを受け入れますが、2 つのデータセットを出力します。最初は空で、2 番目は必要なデータです。OLE DB Destination は、最初の結果セット (空の結果セット) のみを読み取るため、単一の行を書き込みません。
どうすればこれを解決できますか?
一時テーブルを他のものに変更することはできず、基本的にクエリを変更することはできません。可能であれば、SQL ソリューションではなく、SSIS ソリューションを探しています。どうも。
sql-server - SQL Server ストアド プロシージャを Entity Framework モデルに追加するための推奨される方法は何ですか
概要
In our application we use Entity Framework 6 and SQL Server 2016. 複雑なロジックを持つストアド プロシージャを EF モデルにインポートする場合、特に一時テーブルを使用する場合は、次のようにします。
これにより、ストアド プロシージャは完全なロジックを実行し、正しい出力形式を返すため、EF モデルは複合型を正しく生成できます。
一般的に、問題なく動作します。ただし、Microsoft のドキュメントhttps://docs.microsoft.com/en-us/sql/t-sql/statements/set-fmtonly-transact-sql?view=sql-server-ver15には次のように記載されています。この機能を使用しないでください。だから、ストアドプロシージャをインポートして複合型を正しく生成するための推奨される方法は何だろうと思っています。
詳細
まず、 Microsoft の Web サイトでこの機能を使用しないでくださいというメモに混乱していますFMTONLY。ONEF モデル アップデーターによって呼び出されるのと同じコマンド (オプション付き) ではありませんか? これは、EF モデル アップデーターが使用すべきではない機能を使用していることを意味します。
次に、この EF モデル アップデーターの動作は、すべての入力引数が equal でストアド プロシージャが実行されたときに、望ましくない DB データ操作を防ぐことを目的としていると思いますNULL。しかし、実際の動作はこの仮定と一致していないようです。
の使用を避けようとした以下の単純なストアド プロシージャを考えてみましょうSET FMTONLY OFF。Visual Studio (2013、CU 5、Pro) から EF モデルを更新しながら、SQL プロファイラーを使用して正確な動作を分析しました。
ポイント:
EF モデル アップデーターはそれを呼び出し、内部に入り
IF (1=0)(期待どおりSET FMTONLY ON)、SELECT * from @tempTable正しく実行されます。ストアド プロシージャ本体の残りの部分は無視され
return 0、引き続き実行されます。スキップしますが、もちろん存在しないもの
CREATE TABLE #TempValueを実行しようとするため、ここで停止して実行しません。これも失敗します。INSERT INTO #TempValueSELECT * FROM #TempValue
この場合、最後に成功した select は だったので、複合型は正しく生成されましたSELECT * from @tempTable。しかし、実際に実行される後続の選択がないため、これは単なる運だと思います。私にとって、この動作全体には欠陥があり、特にスキップしreturn 0て; あなたが許可した場合、DBデータを保存していませんか?CREATE TABLE #TempValueINSERT INTOINSERT INTO
したがって、実際に機能する 2 つの回避策は次のとおりです。
上に置く
SET FMTONLY OFF。動作しますが、これが少し心配ですMicrosoft Web サイトでこの機能を使用しないでください。SP 本体全体をコメントアウトし
DECLARE @tempTable table ... SELECT * from @tempTable、上記の例のように追加します。EF モデルを更新した後、追加されたチャンクを削除し、元のコードのコメントを外します。EF モデルが更新されるたびにこれを行うため、あまり効率的ではありません。
それを行うための適切で推奨される方法は何ですか?