線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1444
推到 Plurk!
推到 Facebook!

select 讀取DBF檔,但都會抓出錯誤的資料

答題得分者是:mflyy
cheaney
一般會員


發表:1
回覆:0
積分:0
註冊:2007-01-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2007-01-04 17:10:11 IP:218.170.xxx.xxx 訂閱
例如:qry.SQL.Add('SELECT *  FROM '' C:\A.DBF "  WHERE MA001=''A'' ' );
用EXCEL看DBF(有四筆MA001為A、B、B、C),只有一筆A的資料,
有下了WHERE,但是程式讀取OPEN後,卻撈出兩筆(A,B),不知道為什麼跑出了一筆B
是這個DBF檔有隱藏還是刪除的資料讓它錯亂了嗎?
1。要怎麼排除才能正確SELECT呢??
2。還有個問題是:因DBF不能用SUBSTRING的語法,有什麼另外的方式可替代嗎??
pcboy
版主


發表:177
回覆:1838
積分:1463
註冊:2004-01-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2007-01-04 17:51:13 IP:61.219.xxx.xxx 未訂閱
把 A.DBF 和你寫的 Delphi 程式壓縮後上傳讓大家檢查看看
------
能力不足,求助於人;有能力時,幫幫別人;如果您滿意答覆,請適時結案!

子曰:問有三種,不懂則問,雖懂有疑則問,雖懂而想知更多則問!
mflyy
初階會員


發表:3
回覆:44
積分:44
註冊:2002-08-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2007-01-05 00:05:30 IP:59.104.xxx.xxx 訂閱

===================引 用 文 章===================
例如:qry.SQL.Add('SELECT* FROM'' C:\A.DBF " WHERE MA001=''A'' ' );
用EXCEL看DBF(有四筆MA001為A、B、B、C),只有一筆A的資料,
有下了WHERE,但是程式讀取OPEN後,卻撈出兩筆(A,B),不知道為什麼跑出了一筆B
是這個DBF檔有隱藏還是刪除的資料讓它錯亂了嗎?
1。要怎麼排除才能正確SELECT呢??
2。還有個問題是:因DBF不能用SUBSTRING的語法,有什麼另外的方式可替代嗎??

如果是用VFP 的 ADO

可以用 SELECT * FROM A WHERE LEFT(MA001,1)='A'

LEFT ,RIGHT,SUBSTR 是 DBF 的字串函數

如果不要包含己DELETED 的 Record --> SELECT * FROM A WHERE SUBSTR(MA001,1,1)='A' AND NOT DELETED()
建議你用 dbf 的 查詢可以先在 VFP 先測一下就可了解!!



系統時間:2024-05-19 19:56:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!