程式在開發及非開發的電腦環境,執行結果不同的問題 |
答題得分者是:carstyc
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
各位前輩,有個棘手的問題請教.
我在公司寫了生產預排執行作業,功能是要自動預先排單一年當中如何讓各組別以最優化的情況,依生產天數排入日期的功能. 程式都已寫好在自己開發的電腦上排單情況都是最優化的,但放到共用電腦 ( 透過網路芳鄰執行,不是拷貝到用戶端電腦 ) 上出現排單情況和我的不一致. 而且其他同事連去執行都一樣不是最優化,只有我的電腦上及用我的電腦透過網路芳鄰連去執行共用電腦上的執行檔,其結果才是最優化的.所以我無法用delphi以debug mode去單步除錯. 想請問,有可能出現什麼問題?或要往那個方向去查?有沒有可能用戶端沒有安裝delphi的某內建檔?如果是有可能是那支程式? 以下資訊供參考: 開發工具: delphi 7 程式架構 : 將各功能的delphi相關檔案complier成一個執行檔. 資 料 庫 : mssql. 元 件 : 連結資料庫用ADO, 顯示日期範圍用TMS中的TAdvStringGrid. 功能流程 : 將資料放至TEMP TABLE ( CREATE TABLE #tempdb ) ,等判斷調整及優化後,再將temp table中的資料依循顯示在畫面上. 案子已查一段時間,請各位前輩提供解決方案或debug方向,感激不盡. 編輯記錄
|
carstyc
資深會員 發表:16 回覆:254 積分:329 註冊:2003-07-18 發送簡訊給我 |
優化本來就只是一種很虛幻的形容詞....
換個說法....其實只是排程透過你的程式的處理邏輯來排成你想要的結果.... 所以現在問題來了....不同的電腦....會產出不同的結果..... 所以合理的推論...應該是你的程式...會根據不同的電腦....產生不同的處理邏輯.... 但這有可能嗎? 你的處理邏輯還會參考到電腦名稱? IP? 來做不同的處理嗎? 我想排程系統應該不會需要參考到這些資訊..... 因為這個處理邏輯是你產生的...我想全世界只有你可以解釋為什麼...... 但你又提到了不太可能用debug mode 的模式來追蹤問題..... 洋洋灑灑寫了一堆廢話.......你要不要試著插旗子看看.... 在你的程式重點地方...加寫幾行程式....把你用到的變數等資訊寫進 log 檔 .... 用兩台電腦的 log 檔來比較看看.....為何處理邏輯會變調.....在什麼地方變調的..... 應該是不難找出問題來....祝好運.... ===================引 用 mingking0947 文 章=================== 各位前輩,有個棘手的問題請教. 我在公司寫了生產預排執行作業,功能是要自動預先排單一年當中如何讓各組別以最優化的情況,依生產天數排入日期的功能. 程式都已寫好在自己開發的電腦上排單情況都是最優化的,但放到共用電腦 ( 透過網路芳鄰執行,不是拷貝到用戶端電腦 ) 上出現排單情況和我的不一致. 而且其他同事連去執行都一樣不是最優化,只有我的電腦上及用我的電腦透過網路芳鄰連去執行共用電腦上的執行檔,其結果才是最優化的.所以我無法用delphi以debug mode去單步除錯. 想請問,有可能出現什麼問題?或要往那個方向去查?有沒有可能用戶端沒有安裝delphi的某內建檔?如果是有可能是那支程式? 以下資訊供參考: 開發工具: delphi 7 程式架構 : 將各功能的delphi相關檔案complier成一個執行檔. 資 料 庫 : mssql. 元 件 : 連結資料庫用ADO, 顯示日期範圍用TMS中的TAdvStringGrid. 功能流程 : 將資料放至TEMP TABLE ( CREATE TABLE #tempdb ) ,等判斷調整及優化後,再將temp table中的資料依循顯示在畫面上. 案子已查一段時間,請各位前輩提供解決方案或debug方向,感激不盡. |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
我認為問題可能不在程式, 而是在你所謂 "優化" 的tmp資料庫, 不知這些資料庫是放在網路芳鄰使用的嗎?
要不要嘗試把tmp資料庫設定在每一台的 local 來運作, 我會這樣提, 我是這麼認為, 網芳還是有權限控管的問題 ===================引 用 mingking0947 文 章=================== 各位前輩,有個棘手的問題請教. 我在公司寫了生產預排執行作業,功能是要自動預先排單一年當中如何讓各組別以最優化的情況,依生產天數排入日期的功能. 程式都已寫好在自己開發的電腦上排單情況都是最優化的,但放到共用電腦 ( 透過網路芳鄰執行,不是拷貝到用戶端電腦 ) 上出現排單情況和我的不一致. 而且其他同事連去執行都一樣不是最優化,只有我的電腦上及用我的電腦透過網路芳鄰連去執行共用電腦上的執行檔,其結果才是最優化的.所以我無法用delphi以debug mode去單步除錯. 想請問,有可能出現什麼問題?或要往那個方向去查?有沒有可能用戶端沒有安裝delphi的某內建檔?如果是有可能是那支程式? 以下資訊供參考: 開發工具: delphi 7 程式架構 : 將各功能的delphi相關檔案complier成一個執行檔. 資 料 庫 : mssql. 元 件 : 連結資料庫用ADO, 顯示日期範圍用TMS中的TAdvStringGrid. 功能流程 : 將資料放至TEMP TABLE ( CREATE TABLE #tempdb ) ,等判斷調整及優化後,再將temp table中的資料依循顯示在畫面上. 案子已查一段時間,請各位前輩提供解決方案或debug方向,感激不盡. |
aftcast
站務副站長 發表:81 回覆:1485 積分:1763 註冊:2002-11-21 發送簡訊給我 |
|
mingking0947
一般會員 發表:30 回覆:32 積分:12 註冊:2005-07-08 發送簡訊給我 |
感謝各位前輩指教.
本人已找到問題.就是日期格式惹的禍. 因為本人的電腦日期為'YYYY/MM/DD',而其他使用者都是'YYYY/M/D'. 在預排訂單有個很重要的SQL判斷式某個日期區段內是否已有工作. select A_DATE ,B_DATE from #TRANS_RECORD where (( A_DATE between '2011/3/10' and '2011/4/10') or ( B_DATE between '2011/3/10' and '2011/4/10') or ( A_DATE <= '2011/3/10' and B_DATE >= '2011/4/10')) 因為存入TEMP TABLE中沒有格式化日期 ,導致電腦取得日期格式和TEMP TABLE不一樣, 而某個日期區段會判斷錯誤,但卻不是每個日期區段都是如此. 這樣的問題在自己電腦是無法DEBUG的,後來是取了2台不同電腦的LOG檔才發現. |
mybank98
一般會員 發表:4 回覆:14 積分:3 註冊:2006-09-28 發送簡訊給我 |
之前有前輩用一個方法(如下)。讓所有的電腦在跑程式時不會被日期格式所干擾,您參考看看,我是每一支程式都有放下面的程式碼
//鎖定程式日期時間格式不受系統變化影響 Application.UpdateFormatSettings := false; //設定程式本身所使用的日期時間格式 LongDateFormat := 'yyyy/MM/dd'; ShortDateFormat := 'yyyy/MM/dd'; LongTimeFormat := 'hh:nn:ss'; ShortTimeFormat := 'hh:nn:ss'; DateSeparator := '/'; TimeSeparator := ':';
------
Delphi程式設計工作室 網址:http://www.myhome.url.tw/ Mail:mybanksoft@gmail.com |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |