線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1313
推到 Plurk!
推到 Facebook!

db.pas 中的 getrecordcount function 問題

缺席
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-06-15 00:47:01 IP:61.71.xxx.xxx 未訂閱
請問各位!    我遇到一個很棘手的問題, 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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-06-15 11:20:44 IP:61.71.xxx.xxx 未訂閱
各位, 總算讓我找到原因了, 我使用了一個取代原有dbgrid 的元件叫 dbfix.pas在做怪, 只要掛入dbfix元件就會出現問題, 至於為何之前都不會, 而現在會出現, 原因我仍無法得知, 先用另一個來取代就不會有錯誤! 謝謝
系統時間:2024-04-27 7:36:04
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!