上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
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之类的)。
但为什么会有时快时慢的感觉? _________________ 我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。 |
|
回頂端 |
|
|
liangszpt
註冊時間: 2004-11-18 文章: 262 來自: 广东省深圳市
第 2 樓
|
發表於: 星期四 九月 14, 2006 3:00 am 文章主題: |
|
|
以为是程序有错,重新REBUILD
以为是硬碟有碎片,重新整理。
都没有效果
打开FORM时,还是时快时慢。还有一个规律,退出FORMB,马上再进,很快。
如果在FORMA选择了别的记录,又慢了。
我用SECONDES()函数,记录下一些时间,发现就是在
DO FORM B时,就慢在这里,进入了FORMB以后,速度正常。
请各位指教 _________________ 我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。 |
|
回頂端 |
|
|
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秒)
天啊~~~ _________________ 我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。 |
|
回頂端 |
|
|
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 _________________ 我的理想是能成为古代的一位富家公子,
日常生活就是喝茶去怡香院,没事带着一班小打手在街上调戏良家妇女。 |
|
回頂端 |
|
|
朱育興
註冊時間: 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 |
|
回頂端 |
|
|
|