用sysbase,delphi |
尚未結案
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
1.是的, TBookmark 是指標, 見宣告: type TBookmark = Pointer;
2.用法如下:
TTable.GetBookmark; // 記錄 TTable 現在的 Cursor 在哪個位置
TTable.GotoBookmark(Bookmark); // 將 TTable 的 Cursor 移到 Bookmark 這個位置
TTable.FreeBookmark(Bookmark); // 將 TTable 的 Bookmark 這個位置 Free 掉 ---
歡迎光臨 KTop 研究院
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: 1.是的, TBookmark 是指標, 見宣告: type TBookmark = Pointer; 2.用法如下: TTable.GetBookmark; // 記錄 TTable 現在的 Cursor 在哪個位置 TTable.GotoBookmark(Bookmark); // 將 TTable 的 Cursor 移到 Bookmark 這個位置 TTable.FreeBookmark(Bookmark); // 將 TTable 的 Bookmark 這個位置 Free 掉 --- 歡迎光臨 KTop 研究院 >>< face="Verdana, Arial, Helvetica"> 是用query.bookmark,是否也是如此做 Bookmark 這個位置 Free 掉,的功能是結省memory嗎? |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
changchuan
一般會員 發表:7 回覆:12 積分:3 註冊:2003-10-07 發送簡訊給我 |
|
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: 小弟試 TQuery 可以使用 TBookmark 的功能. 那個 dq3 的變數是指什麼? 大概的使用方式:var bk: TBookmark; begin bk := Query1.GetBookmark; try // do something finally Query1.GotoBookmark(bk); Query1.FreeBookmark(bk); end; end;--- 歡迎光臨 KTop 研究院 >>< face="Verdana, Arial, Helvetica"> DQ3是T1:TQUERY;我寫錯了.原程式為如下 T1.First; with T1 do while not eof do begin XXXXXX if i=500 then begin i:=0; bk:=T1.GetBookmark; ******* ****** T1.GotoBookmark(bk); T1.FreeBookmark(bk); end; T1.GetBookmark(Bookmark); xxxxxx xxxxx T1.GotoBookmark(Bookmark); xxx next; END; end; 執行到 T1.GotoBookmark(bk);會出現could not found record,不曉是什麼原因, 在執行此段之前有執行過T1,類似此迴圈,只是沒用Bookmark |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
begin T1.First; with T1 do while not eof do begin //XXXXXX if i=500 then begin i:=0; bk:=T1.GetBookmark; //******* //****** T1.GotoBookmark(bk); T1.FreeBookmark(bk); end; T1.GetBookmark(Bookmark); // 這行的 Bookmark 已經被 Free 了(如果 while 這個迴圈有執行的話)?或 Bookmark 還未指定(如果 while 迴圈沒有執行的話)? //xxxxxx //xxxxx T1.GotoBookmark(Bookmark); //xxx next; // 這行的 Next 會造成無窮迴圈吧?! END;--- 歡迎光臨 KTop 研究院 |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:begin T1.First; with T1 do while not eof do begin //XXXXXX if i=500 then begin i:=0; bk:=T1.GetBookmark; //******* //****** T1.GotoBookmark(bk); T1.FreeBookmark(bk); end; T1.GetBookmark(Bookmark); // 這行的 Bookmark 已經被 Free 了(如果 while 這個迴圈有執行的話)?或 Bookmark 還未指定(如果 while 迴圈沒有執行的話)? //xxxxxx //xxxxx T1.GotoBookmark(Bookmark); //xxx next; // 這行的 Next 會造成無窮迴圈吧?! END;--- 歡迎光臨 KTop 研究院 >>< face="Verdana, Arial, Helvetica"> next這行是要讀T1下一筆的,沒用NEXT要不知如何讀下一筆 T1.FreeBookmark(bk);這行拿掉還是一樣,不曉為何會如此 |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: Sorry! 看錯了! 另外, 可以把您省略的部份貼出來嗎? 您想要做到什麼樣的功能? --- 歡迎光臨 > >>< face="Verdana, Arial, Helvetica"> begin T1.First; with T1 do while not eof do begin //XXXXXX if i=500 then begin i:=0; bk:=T1.GetBookmark; ******* 因執行此行會將T1的指標移至第一筆,所以要記錄目前的指標在那 ****** T1.GotoBookmark(bk); end; T1.GetBookmark(bk); // 這行的 Bookmark 已經被 Free 了(如果 while 這個迴圈有執行的話)?或 Bookmark 還未指定(如果 while 迴圈沒有執行的話)? //xxxxxx //xxxxx //xxx next; END; |
hagar
版主 發表:143 回覆:4056 積分:4445 註冊:2002-04-14 發送簡訊給我 |
哎呀! 小弟我全亂了! 所以回答亂了.
請問一下, class="code">
begin
T1.First;
with T1 do
while not eof do begin
XXXXXX
if i = 500 then begin
i := 0;
bk := T1.GetBookmark;
*******
******
T1.GotoBookmark(bk);
T1.FreeBookmark(bk);
end;
T1.GetBookmark(Bookmark); // 這個 Bookmark 的值從哪取得的?因為未指定, 所以會有找不到 Record not found 的錯.
xxxxxx
xxxxx
T1.GotoBookmark(Bookmark);
xxx
next;
END;
end;
---
歡迎光臨 KTop 研究院
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: 哎呀! 小弟我全亂了! 所以回答亂了. 請問一下, class="code"> begin T1.First; with T1 do while not eof do begin XXXXXX if i = 500 then begin i := 0; bk := T1.GetBookmark; ******* ****** T1.GotoBookmark(bk); T1.FreeBookmark(bk); end; T1.GetBookmark(Bookmark); // 這個 Bookmark 的值從哪取得的?因為未指定, 所以會有找不到 Record not found 的錯. xxxxxx xxxxx T1.GotoBookmark(Bookmark); xxx next; END; end; --- 歡迎光臨 KTop 研究院 >>< face="Verdana, Arial, Helvetica"> 我把 bk指定為 bk:TBookmark; begin T1.First; with T1 do while not eof do begin //XXXXXX if i=500 then begin i:=0; T1.GetBookmark(bk); ******* 因執行此行會將T1的指標移至第一筆,所以要記錄目前的指標在那 ****** T1.GotoBookmark(bk); end; //xxxxxx //xxxxx //xxx next; END; |
changchuan
一般會員 發表:7 回覆:12 積分:3 註冊:2003-10-07 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |