上一篇主題 :: 下一篇主題 |
發表人 |
內容 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 1 樓
|
發表於: 星期四 二月 03, 2005 3:44 pm 文章主題: 如何Select 某個已有設filter的table裡,只有符合filter的資料到一cursor |
|
|
是想要算原table中符合filter與not deleted()的資料總數
如果用reccount()會把所有資料通通算進去
如果直接count for 原table,指標會移動,
時時刻刻還要注意回溯,感覺頗麻煩也容易出錯
因此想要先Select 原table中符合filter與not deleted()的資料到cursor中,再用reccount()來算總數
謝謝 |
|
回頂端 |
|
 |
朱育興
註冊時間: 2003-08-25 文章: 661 來自: 台中市大里區
第 2 樓
|
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 3 樓
|
發表於: 星期四 二月 03, 2005 4:05 pm 文章主題: |
|
|
感謝朱大哥解說  |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 4 樓
|
發表於: 星期五 二月 04, 2005 8:35 am 文章主題: |
|
|
再請教大家
filter('tablename')這個函數的輸出型態是字元
弟嘗試把它寫在where的後面,但似乎不行,不知是否可以先做形態轉換?
因為弟這邊的filter情況會一直改變,如果可以直接用filter()來表示,似乎
便捷多了
Select count(*) as total from tablename where filter('tablename') into cursor tmp |
|
回頂端 |
|
 |
Le1015
註冊時間: 2004-08-06 文章: 30
第 5 樓
|
發表於: 星期五 二月 04, 2005 9:48 am 文章主題: |
|
|
可以利用巨集
LOCAL tfilter
tfilter=filter('tablename')
Select count(*) as total from tablename where &tfilter. into cursor tmp |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 6 樓
|
發表於: 星期五 二月 04, 2005 10:15 am 文章主題: |
|
|
應該是
select * from table1 where eval(filter('table1'))
這樣就可以了.
VFP 6.0以上適用. _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 7 樓
|
發表於: 星期五 二月 04, 2005 10:31 am 文章主題: |
|
|
依據你的開題說法
我會選擇用
select count(*) as nCOUNT from table where expr1(是filter 的條件)
into cursor xxxxxx之中
看xxxxxx中的欄位ncount 就是你想要的東西
至於delete的問題
在系統初始設定時
就應解決的問題 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 8 樓
|
發表於: 星期五 二月 04, 2005 5:15 pm 文章主題: |
|
|
bin1x 寫到: | 依據你的開題說法
我會選擇用
select count(*) as nCOUNT from table where expr1(是filter 的條件)
into cursor xxxxxx之中
看xxxxxx中的欄位ncount 就是你想要的東西
至於delete的問題
在系統初始設定時
就應解決的問題 |
想請教 VFP6 help似乎找不到關於expr1()的解說
另外,如果filter有牽涉到表單之類的物件,用eval()也可以嗎?
似乎好像不行
guide_id=val(thisform.pageframe1.hisdata.combo_guideID.value) and (like("*"+alltrim(thisform.txtkeywd.value)+"*",headline)) |
|
回頂端 |
|
 |
syntech
註冊時間: 2003-05-16 文章: 4249 來自: Taipei,Taiwan
第 9 樓
|
發表於: 星期五 二月 04, 2005 6:10 pm 文章主題: |
|
|
try try see!
只要不是do xxx.prg的話,
應該都可以
應該不是 expr1
而是
local expr1
store "你的filter 條件" to expr1
select count(*) as nCOUNT from table into cursor xxxxxx where expr1 _________________ 如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問
請聯絡我們,也許我們幫得上忙 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 10 樓
|
發表於: 星期五 二月 04, 2005 7:33 pm 文章主題: |
|
|
syntech 寫到: | try try see!
只要不是do xxx.prg的話,
應該都可以
應該不是 expr1
而是
local expr1
store "你的filter 條件" to expr1
select count(*) as nCOUNT from table into cursor xxxxxx where expr1 |
感謝syntech大
在expr1前面加&就可以了---> where &expr1
難怪試Le1015大的做法都沒有成功,
Local tfilter
那tfilter=filter('tablename') 和store filter('tablename') to tfilter
意思不同嗎? 看起來好像都一樣
tfilter==filter('tablename') 儲存時就不給過了
VFP6宣告變數好像都不用加變數型態,感覺有點不太習慣 |
|
回頂端 |
|
 |
Le1015
註冊時間: 2004-08-06 文章: 30
第 11 樓
|
發表於: 星期六 二月 05, 2005 10:16 am 文章主題: |
|
|
很抱歉阿!
小弟今天又學到一個觀念
可能是之前習慣用這種方式取得條件
Select tablename
tFilter=filter() |
|
回頂端 |
|
 |
bin1x
註冊時間: 2004-08-27 文章: 462
第 12 樓
|
發表於: 星期六 二月 05, 2005 10:19 am 文章主題: |
|
|
其實好像還有一點
&巨集開始
.巨集結束 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 13 樓
|
發表於: 星期六 二月 05, 2005 11:38 am 文章主題: |
|
|
bin1x 寫到: | 其實好像還有一點
&巨集開始
.巨集結束 |
巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎? |
|
回頂端 |
|
 |
bigear

註冊時間: 2004-12-19 文章: 162 來自: 網路的另一端
第 14 樓
|
發表於: 星期六 二月 05, 2005 11:42 am 文章主題: |
|
|
jms7275 寫到: | bin1x 寫到: | 其實好像還有一點
&巨集開始
.巨集結束 |
巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎? |
舉個例子
thisform.release
使用巨集的方式
cTmp="thisform"
&cTmp..release <== 注意看 有兩個點
這就是你的疑問了 _________________ 以上淺見,歡迎批評指教
________________________________________________
山不轉路轉,路不轉人轉,人不轉頭轉,頭不轉眼睛轉,眼睛不轉眼珠轉
眼珠再不轉就去睡覺,睡起來繼續轉 |
|
回頂端 |
|
 |
jms7275
註冊時間: 2005-01-08 文章: 65
第 15 樓
|
發表於: 星期六 二月 05, 2005 1:01 pm 文章主題: |
|
|
bigear 寫到: | jms7275 寫到: | bin1x 寫到: | 其實好像還有一點
&巨集開始
.巨集結束 |
巨集結束的使用時機是?
是指使用完巨集,要把巨集結束比較好是嗎? |
舉個例子
thisform.release
使用巨集的方式
cTmp="thisform"
&cTmp..release <== 注意看 有兩個點
這就是你的疑問了 |
瞭解 ,就是告知巨集要編譯到哪邊停住 |
|
回頂端 |
|
 |
|