MS SQL(2005) に、Coldfusion (8) を介して実行したいユーザー定義関数があります。どうすればこれを機能させることができますか?
[ストアド プロシージャではないので、cfstoredproc はアウト] .
前もって感謝します。
MS SQL(2005) に、Coldfusion (8) を介して実行したいユーザー定義関数があります。どうすればこれを機能させることができますか?
[ストアド プロシージャではないので、cfstoredproc はアウト] .
前もって感謝します。
Coldfusion データソースに目的の UDF に対する適切な EXECUTE 権限がある場合は、通常の CFQUERY ブロック内で SQL UDF を呼び出すことができます。CFQuery 内で select ステートメントを返す必要はありません。Coldfusion 変数をデータベースに渡す場合は、安全のために CFQUERYPARAM を使用することを忘れないでください。
UDF を呼び出すには、そのスキーマを含める必要があります*。この場合、デフォルトのスキーマを使用したため、UDF には「dbo」というプレフィックスが付きます。dbo.FunctionName() のように。
次に例を示します。
<!--- We want to convert this numeric category into its English name.
Thankfully our database administrator has a simple function to
resolve it without extra work on our part. --->
<cfset myCategory = 100428>
<!--- We call this Coldfusion variable using CFQUERYPARAM to prevent SQL Injection --->
<cfquery datasource="mydatasource" name="test">
SELECT dbo.CategoryAsString(<cfqueryparam cfsqltype="cf_sql_integer" value="#myCategory#">) AS CategoryString
</cfquery>
<!--- And output the result here --->
<cfdump var="#test.CategoryString#">
*UDF のスキーマを含めないと、「データベース クエリの実行中にエラーが発生しました。[Macromedia][SQLServer JDBC Driver][SQLServer]'[FUNCTION NAME]' は認識された組み込み関数名ではありません」というメッセージが表示されます。(CF8)