問題タブ [clrstoredprocedure]
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 - SQL Server ストアド プロシージャの単一フィールドに対して複数の値を読み取る
誰かがこの状況を処理する方法を教えてもらえますか?
SQL ストアド プロシージャを 1 回呼び出すだけで、1 つの列の複数の値を読み取る必要があるシナリオがあります。
例: データには name1、name2、name3、name4 があり、これらすべての名前を読み取ってテーブルに格納するには、SQL ストアド プロシージャを 1 回呼び出す必要があります。
c# - C# CLR から DateTime を逆シリアル化する
CLR クラスに次のような json 文字列があります。
CLR クラスは REST API を呼び出し、パラメータを渡します。私の REST API では、次のようにパラメーターを逆シリアル化します。
そして、この行に到達すると:
例外が発生し、DateTime に変換されません。どうすればそれを機能させることができますか?
c# - CLR ストアド プロシージャの呼び出し時の System.InvalidCastException
Visual Studio 2012 で CLR ストアド プロシージャをデバッグしようとしています。呼び出すと、次のエラーが発生し、CLR ストアド プロシージャが呼び出されません。
これは、CLR ストアド プロシージャの定義です。
そして、これは私がそれを呼び出そうとしている方法です:
何か助けてください。ありがとうハイメ
c# - System.InvalidOperationException: セキュリティ透過的なメソッドで CAS アサートを実行できません
C# 4.0 で記述され、SQL Server 2014 に展開された SQL CLR トリガーがあります。SQL Server のテーブルで挿入が発生するたびに、この CLR トリガーの仕事は、その行を Oracle データベースにインポートすることです。したがって、基本的に、SQL Server 2014 のテーブルで挿入クエリが実行されるたびに、Oracle データベースにデータをインポートする必要があります。これは私の最初の CLR SQL トリガー プロジェクトであり、以下は私が行っていることです。
そして、これはアセンブリ/デプロイトリガーを作成するための私のコードです:
問題は、SQL Server で挿入クエリを実行してデータを挿入するたびに、SQL Server で以下のエラーが発生することです。
メッセージ 6522、レベル 16、状態 1、手順
tri_InsertSurvey_clr
、行 18
ユーザー定義ルーチンまたは集計 "tri_InsertSurvey_clr" の実行中に .NET Framework エラーが発生しました:
tri_InsertSurvey_clr
挿入ステートメントを実行するたびにアセンブリを実行するトリガーです。
このエラーが発生するように何が欠けているか教えてください。また、CLR SQL トリガーを実装するより洗練された方法がある場合は、それも提案してください。
注: SQL Server でトリガーを使用してデータを保存しようとしたときは成功しましたが、Oracle データベースに保存しようとすると、このエラーが発生します。また、Oracle データベースは別のマシンにインストールされています。
sql - SQL Server 2012 CLR 統合 PInvoke PolicyException
私はいくつかの CLR 統合ユーザー定義関数を作成しました。そのうちの 1 つは、絶対パスで C++ dll に対して PInvoke メソッドを呼び出す必要があります。
[DllImport(@"C:\FullPath\CppCode.dll"...
これを SQL Server 2008 R2 (サービス パックなし) に展開しましたが、この UDF を正常に呼び出してクエリ結果を受け取ることができます。(CLR を有効にし、権限セット UNSAFE を使用して CLR アセンブリを読み込み、trustworthy を true に設定しました。SQL サーバー インスタンスだけでなく、マシンにも完全な管理者権限があります)
ただし、SQL Server 2012 がインストールされている別のマシンでまったく同じことを行うと (このマシンのオペレーティング システムとほとんどすべての構成は他のマシンと同じです)、PInvoke 関数を除くすべての CLR 関数を呼び出すことができます。これにより、次の結果が得られます。エラーメッセージ
Msg 6522, Level 16, State 1, Line 2
A .NET Framework error occurred during execution of user-defined routine or aggregate "MyUserDefinedFunction":
System.ArgumentException: System.Security.Policy.PolicyException Execution permission cannot be acquired.
at UserDefinedFunctions.MyMethodWithPInvoke()
...(more stack trace)
---> System.Security.Policy.PolicyException: Execution permission cannot be acquired.
System.Security.Policy.PolicyException:
... (more stack trace)
System.ArgumentException:
at UserDefinedFunctions.MyUserDefinedFunction( ...
私はデータベース担当者と協力して、考えられるすべてのアカウント (SQL Server 構成マネージャー内のすべての SQL Server サービスのサービス アカウントでさえも) に管理者権限を付与しようとしましたが、何が原因かを理解しようとしています。 SQL Server 2008 と 2012 の間で、ある種のポリシー変更が行われました。
SQL CLR 関数が PInvoke を SQL Server 2012 のディスク上の DLL に呼び出せるようにするために何をする必要があるか知っている人はいますか? 2008 R2 では正常に動作します
編集: PInvoke 呼び出しの周りに try/catch を挿入したところ、PolicyException には次のプロパティがあることがわかりました
Message: "Execution permission cannot be acquired."
Source: "mscorlib"
mysql - Select Dateadd() sqlserver を使用して年を減算する
私は2つのテキストボックスを持っています.expiredfromとexpiredtoです。これらのテキストボックスを使用すると、ユーザーはライセンスを使用していて、支払い後 1 年以内に有効期限が切れるユーザーを「期限切れ」から「期限切れ」までの範囲で見つけることができます。私のデータベースでは、購入日のみが表示されるため、SELECT DATEADD() 関数を使用してユーザー入力を 1 年減算し、有効期限が購入日と同じになるようにします。しかし、実装しようとすると、構文エラーが表示されます。何が問題ですか?ありがとう