VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

打开一张FORM时,速度时快时慢

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
liangszpt



註冊時間: 2004-11-18
文章: 262
來自: 广东省深圳市

第 1 樓

發表發表於: 星期三 九月 13, 2006 1:23 pm    文章主題: 打开一张FORM时,速度时快时慢 引言回覆

我在本机写了一个程序,其中FORM-A有一个GRID,一个按钮

用户选择了GRID里面的记录后,CLICK按钮,打开一个FORM-B,就是在CLICK来打开FORM-B的时候,FORM-B显示的速度时快时慢

如果FORM-B关闭,返回FORM-A时,在GRID中再选择同一条记录来打开,速度正常,选别的记录,又慢了起来。

从程序上,无论选那一条记录来打开FORM-B,处理的过程都是一样的(里面有些SELECT FROM INTO CURSOR之类的)。
但为什么会有时快时慢的感觉?

_________________
我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
liangszpt



註冊時間: 2004-11-18
文章: 262
來自: 广东省深圳市

第 2 樓

發表發表於: 星期四 九月 14, 2006 3:00 am    文章主題: 引言回覆

以为是程序有错,重新REBUILD
以为是硬碟有碎片,重新整理。
都没有效果
打开FORM时,还是时快时慢。还有一个规律,退出FORMB,马上再进,很快。
如果在FORMA选择了别的记录,又慢了。
我用SECONDES()函数,记录下一些时间,发现就是在
DO FORM B时,就慢在这里,进入了FORMB以后,速度正常。

请各位指教

_________________
我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2157


第 3 樓

發表發表於: 星期四 九月 14, 2006 9:49 am    文章主題: 引言回覆

一般電腦的硬碟(硬盤) 都會緩衝(buffer)區,
用來記憶剛剛讀取過的資料,
像你這種情形應該去檢查formb的"資料環境"
是否開了太多沒用的table,
是否可以簡化或不用關聯,
或是用了combobox這類的物件,
須要先將table的資料放到 combobox,
這樣打開form時的速度也會變慢.

試看看吧!

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
marvin



註冊時間: 2004-06-01
文章: 321


第 4 樓

發表發表於: 星期四 九月 14, 2006 10:04 am    文章主題: 引言回覆

建議用 VFP 中的 Coverage Profiler 看看, 有時用來找出瓶頸很有用的
回頂端
檢視會員個人資料 發送私人訊息
liangszpt



註冊時間: 2004-11-18
文章: 262
來自: 广东省深圳市

第 5 樓

發表發表於: 星期五 九月 15, 2006 12:04 am    文章主題: 引言回覆

TO GARFIELD:你的方法我试过了,打开的TABLE不多,只有两个。的确我在FORMB中是有COMBOBOX这样的物件,也是要将TABLE资料放入去,但只有5条记录的。

TO MARVIN:COVERAGE这个东东,我还不会用,在看朱兄译的那个HELP,再试试。

我甚至做过一些变态的做法,新建一个FORMB(我以为是FORMB内部有些错误),将所有物件COPY去,但效果还是那样,时正常,时慢(5秒)

天啊~~~

_________________
我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
marvin



註冊時間: 2004-06-01
文章: 321


第 6 樓

發表發表於: 星期五 九月 15, 2006 12:29 am    文章主題: 引言回覆

> 将所有物件COPY去

或許試試只 copy 部份.....
回頂端
檢視會員個人資料 發送私人訊息
catjoke



註冊時間: 2003-06-16
文章: 175
來自: 香港

第 7 樓

發表發表於: 星期五 九月 15, 2006 9:14 am    文章主題: 引言回覆

應該是 資料的問題, 把它整理一下..

例如:

USE myTable EXCL
SELECT * FROM myTABLE WHERE .T. ORDER BY 1 INTO TABLE C:\myBackup
SELECT myTable
ZAP && 殺掉所有資料
APPEND FROM C:\myBackup && 把資料重新灌入, 並以順排方式載入...

p.s. 你一定要做好備份, 如弄錯損失資料要自己負責.

_________________
喵喎~ 貓當然是 "茅" 的嘛! ^0^;
回頂端
檢視會員個人資料 發送私人訊息
215001



註冊時間: 2003-06-11
文章: 389


第 8 樓

發表發表於: 星期五 九月 15, 2006 9:35 am    文章主題: 引言回覆

先移除不用 Combobox ,試看看
回頂端
檢視會員個人資料 發送私人訊息
marvin



註冊時間: 2004-06-01
文章: 321


第 9 樓

發表發表於: 星期五 九月 15, 2006 12:24 pm    文章主題: 引言回覆

Coverage frofiler 的好處是正常情形下馬上知道慢在那一點上,
但若情況不正常那就......
回頂端
檢視會員個人資料 發送私人訊息
liangszpt



註冊時間: 2004-11-18
文章: 262
來自: 广东省深圳市

第 10 樓

發表發表於: 星期六 九月 16, 2006 7:38 pm    文章主題: 引言回覆

215001 寫到:
先移除不用 Combobox ,試看看


如果真的不用COMBOBOX,速度真的很好。
看来问题是发生在COMBOBOX身上。
我在FORMB 的INIT里面,只有这么一段是关于COMBOBOX的。
INF_PAYMODE这个表,也只是有5条记录而已

SELECT INF_PAYMODE
SCAN
  .cmbMode.AddItem(ALLTRIM(PAY_NAME))
ENDSCAN

IF .cmbMode.ListCount > 0
  .cmbMode.ListIndex = 1
ENDIF

_________________
我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
朱育興



註冊時間: 2003-08-25
文章: 661
來自: 台中市大里區

第 11 樓

發表發表於: 星期一 九月 18, 2006 1:27 pm    文章主題: 引言回覆

為何不對該 COMBOBOX 的屬性做下列設定

RowSourceType 屬性設為 3
RowSource 屬性設為 SELECT ALLTRIM(A.PAY_NAME) AS PAY_NAME FROM INF_PAYMODE A INTO CURSOR SQL_PAYMODE

這樣 FORMB 的 Init 中就不用那樣做了

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作