db.pas 中的 getrecordcount function 問題 |
缺席
|
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
請問各位! 我遇到一個很棘手的問題, XP sp1 + Delphi5 我有一個frame元件, 內有uses db 一項, 之前這個frame被引用都沒有問題, 是很突然的發生編譯後執行都一直出現如圖的錯誤,
當然程式不是Project2 這樣簡單的內容, 我只是利用 Project2來測試也是會發生, project2只自動Createm一個form, 而form引入了一個Frame, form沒有寫任何自己的程式(但frame有寫好很多功能)我查了好幾天結果發現是在 db.pas 中的 DataSource 為 nil 而發生錯誤
function TDataLink.GetRecordCount: Integer; begin if DataSource.State = dsSetKey then Result := 1 else begin Result := DataSource.DataSet.FRecordCount; if Result > FBufferCount then Result := FBufferCount; end; end;但我要強調的是在發生之前這個Frame已經用了4年之多, 歷經由 win98, win2000, winxp等作業系統數十支的程式來使用都沒有問題, 而是很突然在一次的程式修改(不是這支Tframe程式)編譯後, 從此只要引用這支TFrame 就會出問題, 而舊的程式(有含這支Frame的)如果不重編譯不會有問題, 但拿來以現在的環境去重新編譯再去執行都會出現了, 無一倖免, 我已抓的心疲力盡, 仍無法得知為何如此, 而且在form被create時, frame 為何會自動去執行db中的recordcount, 而令datasource為nil, 不知各位是有遇過的? 我曾嘗試回到win98, win2000下編譯, 甚至重新開一個frame重置畫面及frame內所有功能(即不使用原來的frame來做)都宣告無效, 要請各位幫幫忙了! 謝謝! |
P.D.
版主 發表:603 回覆:4038 積分:3874 註冊:2006-10-31 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |