7
今天在修復某些現有代碼中的錯誤時,我發現了一個奇怪的錯誤。我們可以在cftransaction中編寫數字查詢/語句是否有任何限制?
轉移目標偏移短
過大搜索,我發現它是與Java字節碼轉換之後。下面是我找到的鏈接:
- Branch target offset too large for short
- Branch Target Offset Error
- Why does a long cfc file work in CF8, but not CF9? Getting "Branch target offset too large for short" error
在我的情況cftransaction含有大約870語句和它的正常工作。但是我需要爲這個事務增加2個查詢。現在,當我在cftransaction中添加一行代碼時,出現此錯誤。目前我無法將任何現有的cfquery移出cftransaction。
這裏是代碼的整體結構:
<cftransaction action="begin">
<cfif URL.action eq 'add'>
Around 200 lines of queries/statements
<cfelseif URL.action eq 'edit'>
Around 200 lines of queries/statements
</cfif>
<cfif URL.action eq 'add' or URL.action 'edit'>
Around 450 lines of queries/statements
</cfif>
</cftransaction>
有任何解決方法來解決這個問題?
你總是可以移動所有的SQL數據庫存儲過程。 –
您確定交易是原因嗎?其中一個提到的交易是*不涉及,將事情分解成更小的功能/組件解決了問題。有些事情要測試A)如果您臨時移除交易,它會起作用嗎? b)如果您將代碼重新安排到較小的函數(或cfc,如果需要),然後從事務中調用這些函數,它會起作用嗎? c)說了這麼多,對於查詢來說聽起來像很多SQL。 (也就是說,IMO複雜的SQL邏輯更好地打包在存儲過程而不是查詢中。) – Leigh
@Leigh:A)是的,當我刪除事務時它工作正常.B)是的,我嘗試了它的工作。 C)我也打算將它打包到一個存儲過程中,但這需要大量的時間/精力/測試,我不確定客戶端是否準備好了,這就是爲什麼要尋找小的解決方法。 –