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

於asp.net ,用 vfpoledb 讀取 Visual Foxpro 資料庫的問題

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



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


第 1 樓

發表發表於: 星期四 六月 04, 2015 10:40 pm    文章主題: 於asp.net ,用 vfpoledb 讀取 Visual Foxpro 資料庫的問題 引言回覆

我在ASP.NET 4.0下,透過vfpoledb讀取Visual Foxpro 8.0的 DBF 檔案(獨立檔案)

用 DataAdapter 物件:

指令: Select *,總價 from test : 讀取成功

改用: Select *,VAL(總價) as 新總價 from test : 讀取失敗,為什麼 ?????



總價欄位: 是文字型態的 char(10)
回頂端
檢視會員個人資料 發送私人訊息
215001



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


第 2 樓

發表發表於: 星期四 六月 04, 2015 10:45 pm    文章主題: 引言回覆

很奇怪的現象

剛開始改用 VAL(總價) 時,測試了幾次,都還可以正常讀取出資料

但是後來,就無法再讀取成功了
回頂端
檢視會員個人資料 發送私人訊息
215001



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


第 3 樓

發表發表於: 星期五 六月 05, 2015 12:02 pm    文章主題: 引言回覆

從網路上找資料,後來測試發現

若總價欄位都 <= "99999" 時: Select *,VAL(總價) .............讀取正常

若其中一筆總價 >= "100000" 時: Select *,VAL(總價) ...........就讀取 失敗 ???

難道 vfpoledb 的val( ),只能轉換到 99999

請較各位,有方法可以解決嗎?
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 472
來自: 台南市

第 4 樓

發表發表於: 星期五 六月 05, 2015 2:16 pm    文章主題: 引言回覆

我記得有人問過類似這個問題, 因為是長度的問題, 您可以在討論區用搜尋找一下
_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
215001



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


第 5 樓

發表發表於: 星期五 六月 05, 2015 9:07 pm    文章主題: 引言回覆

謝謝 goodnight ,已爬文過,但是還抓不到重點

goodnight 兄是否能提供幾個關鍵字,方便搜尋
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 472
來自: 台南市

第 6 樓

發表發表於: 星期六 六月 06, 2015 10:51 am    文章主題: Re: 於asp.net ,用 vfpoledb 讀取 Visual Foxpro 資料庫的問題 引言回覆

215001 寫到:
我在ASP.NET 4.0下,透過vfpoledb讀取Visual Foxpro 8.0的 DBF 檔案(獨立檔案)

用 DataAdapter 物件:

指令: Select *,總價 from test : 讀取成功

改用: Select *,VAL(總價) as 新總價 from test : 讀取失敗,為什麼 ?????



總價欄位: 是文字型態的 char(10)


類似長度不足補零
Select Right('00000000' + Cast(123 as varchar), 8 ) > '00000123'

因為你的總價欄位是文字型態, 很少有人會把數字設定成文字型態
還是你的總價根本就是數字型態??

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ


goodnight 在 星期二 六月 09, 2015 10:58 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
215001



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


第 7 樓

發表發表於: 星期六 六月 06, 2015 1:42 pm    文章主題: 引言回覆

謝謝你

總價欄位: 是文字型態的 char(10)
回頂端
檢視會員個人資料 發送私人訊息
215001



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


第 8 樓

發表發表於: 星期六 六月 06, 2015 3:06 pm    文章主題: 引言回覆

謝謝goodnight
如你猜測,應該是val() 轉換時,給的資料型態長度不足,造成資料溢位的問題

後來改用下面的方法解決了:
Select *,INT(val(總價)) as 新總價 from test
Select *,ROUND(val(總價),2) as 新總價 from test
回頂端
檢視會員個人資料 發送私人訊息
asd89839032



註冊時間: 2012-10-15
文章: 49


第 9 樓

發表發表於: 星期一 六月 08, 2015 4:40 pm    文章主題: 引言回覆

湊熱鬧

VFP預設的 SELECT VAL(總價) as 新價 FROM TEST
新的欄位會很貼心的幫你算到剛剛好的大小

EX:文字10 + 設定val 2位小數,他會幫你自動設成 13的大小
好奇 vfpoledb 是固定大小 8,2 嗎?

_________________
菜鳥路過...
回頂端
檢視會員個人資料 發送私人訊息
215001



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


第 10 樓

發表發表於: 星期一 六月 08, 2015 5:17 pm    文章主題: 引言回覆

於asp.net 透過vfpoledb測試結果:

Select *,VAL("99999") as 新總價 from test : 可以
Select *,VAL("99999.9999") as 新總價 from test : 可以

Select *,VAL("100000") as 新總價 from test : .......................失敗
Select *,000000+VAL("100000") as 新總價 from test : .......................失敗

Select *,ROUND(val("100000"),0) as 新總價 from test : .......................可以
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 472
來自: 台南市

第 11 樓

發表發表於: 星期二 六月 09, 2015 11:04 pm    文章主題: 引言回覆

215001 寫到:
謝謝你

總價欄位: 是文字型態的 char(10)


有沒有可能在填入總價時變成 0000005000, 不足位數補零或許可以比較簡單的解決問題?
或是把總價的欄位修正成 NUMBER ??

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
asd89839032



註冊時間: 2012-10-15
文章: 49


第 12 樓

發表發表於: 星期三 六月 10, 2015 11:44 am    文章主題: 引言回覆

所以他應該是給 10,4 , val 可能給4位小數
_________________
菜鳥路過...
回頂端
檢視會員個人資料 發送私人訊息
215001



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


第 13 樓

發表發表於: 星期三 六月 10, 2015 1:53 pm    文章主題: 引言回覆

謝謝各位

1.總價欄位,有其他考量,不能改成數值型態
2.目前採用 ROUND(val(總價),2) as 新價 暫時解決
回頂端
檢視會員個人資料 發送私人訊息
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

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


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