全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1562
推到 Plurk!
推到 Facebook!

Delphi 2006 升級 Delphi 2010 or XE E2238 錯誤

答題得分者是:Highlander
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-20 12:24:14 IP:220.134.xxx.xxx 訂閱
小弟有個問題不知道各位先進有沒有遇過:
我們公司的 ERP 程式是用 Delphi 開發的,一路從 Delphi 5 升級到 Delphi 2006 都沒什麼問題!
最近想說升級到 Delphi 2010 or XE 問題就發生了!
我的一支 Procedure 程式使用 Case of (判斷條件為整數 1600行程式碼)編譯時沒問題,
可是另外一支 Procedure 程式 Case of (判斷條件為整數 1000行程式碼) ,在編譯時會出現: E2283: Too many local constants. Use shorter procedures 的錯誤訊息,
我並沒有用太多特殊的與法,只是一些利用 ClientDateSet.CommandText 取得資料的簡單語法而已,
相同的程式在 Delphi 2006 時 可以正常編譯(完全無修改)!
請問一下有人遇過一樣的問題嗎?
Highlander
初階會員


發表:0
回覆:40
積分:43
註冊:2008-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-20 16:45:53 IP:61.20.xxx.xxx 訂閱
Delphi 2009之後Data alignment改為4byte, 和Delphi 2006不同, 所以你的程式碼可能超過了上限. 你可以試著把Stack/Stack Frame加大看看也許可以通過, 不過我的建議是你的procedure不應該這麼大, 除了維護困難之外, 執行效率也不好.
TommyCheng
一般會員


發表:3
回覆:7
積分:2
註冊:2002-06-03

發送簡訊給我
#3 引用回覆 回覆 發表時間:2010-12-20 17:49:36 IP:60.248.xxx.xxx 訂閱
或許是我們的 procedure較龐大!
但是因為我們所維護的程式碼太過於龐大,一一改起來難度有點高!
而且相同類型的程式,有些是正常但有些是錯誤的!
除了縮短程式長度之外,我想先弄清楚發生錯誤的原因!再來決定該如何因應!
同時也感謝您的回覆 !

cancer
高階會員


發表:58
回覆:319
積分:190
註冊:2004-07-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2011-01-24 15:59:17 IP:211.75.xxx.xxx 訂閱
Too many local constants!
居然有這種諎誤,您一定 var 了很多很多變數了。
系統時間:2017-12-13 15:27:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!