3
addstoredproc方法我打電話與CFSCRIPT一個存儲過程,但是當我添加addProcResult
方法調用,ColdFusion的返回錯誤指定的關鍵,因此,不會在結構存在。刪除該方法可修復錯誤並且不會影響結果,但我仍然想知道錯誤出現的原因。使用<cfstoredproc>
和<cfprocparam>
不會生成錯誤。我正在運行CF9。我的代碼如下。錯誤與CFSCRIPT
spService = new storedProc();
spService.setDatasource("mydb");
spService.setProcedure("someSP");
spService.setUsername("TaskRunner");
spService.setPassword("password");
spService.addProcResult(name="result",resultset=1);
spService.execute();
存儲過程是否實際返回結果集?還是通過輸出參數返回響應? Procs可以做到兩者兼得(或者兩者都不)!但是如果它只做後者 - 你不會得到一個結果集,並且因此將沒有任何東西可以注入,這可以解釋爲什麼你沒有得到錯誤刪除調用以保存/存儲「不存在的結果集」 –
proc不返回結果集或輸出。所以我想這是有道理的,但爲什麼不使用標籤錯誤? – RHPT
我的猜測是:與以前版本的CF向後兼容。看到9如何增加對基於腳本的proc調用的支持,他們可以靈活地在惡意發生時拋出更多戲劇性的錯誤 - 但對於CF標籤沒有那麼奢侈。巧合的是,如果您實例化一個java對象並調用一個在嘗試對其結果進行CFSET var時返回NULL的方法,那麼當您嘗試讀取它時會得到一個「變量是未定義的錯誤」 - 即使它清楚你稱之爲CFSET的代碼。類似的問題 - CFSET仍然經歷 - 但它包含的內容是不存在的。 –