ADO 連 ACCESS 的[查詢太過複雜]問題 |
答題得分者是:tonytop
|
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
Chance36 版大及各位大大安好.... Orz
之前小弟在這邊有提出這個問題,那時 Chance36 版大也給了一個方法解決。
問題的原因出在我所使用的TABLE 有 104 個欄位。
當時,我的程序改成下面的方式來完成 使用
ADOQuery1.SQL.Text:='select * from data';開啟一個空的資料表,然後將文字檔資料讀進這個 Query 中 之後再使用 ADOQuery2.SQL.Text:='SELECT * into newdata FROM data';將DATA 的結構複製進我所要的 NEWDATA 資料表中.. 然後使用 ADOQuery2.fields[j].value:=DBGrid1.Fields[j].value;還有 ADOQuery2.Edit; ADOQuery2.Post; ADOQuery2.UpdateBatch; //將資料存回資料表來完成我要的東西,這種情況下是OK,沒有問題的。 而,如果我用 ADOQuery2 去開啟一個已經存在且有資料的 TABLE 如下 ADOQuery2.SQL.Text:='select * from data'; ADOQuery2.Open; DBGrid1.DataSource.DataSet.First; i:=1; WHILE not DBGrid1.DataSource.DataSet.Eof do begin if ADOQuery2.Locate(KeyFieldName,ADOQuery1.Field[keyFieldNum].Value,[]) then ADOQuery2.Edit else ADOQuery2.Append; for j:=0 to DBGrid1.FieldCount-1 do ADOQuery2.fields[j].value:=DBGrid1.Fields[j].value; DBGrid1.DataSource.DataSet.Next; inc(i); end; ADOQuery2.Edit; ADOQuery2.Post; ADOQuery2.UpdateBatch;一樣沒有問題。 問題出在後邊.. 如果,我使用 ADOQuery1 去開啟一個已經存在的TABLE 而,使用 DBGIRD 來編輯這個TABLE,當我要 ADOQuery1.Edit; ADOQuery1.Post; ADOQuery1.UpdateBatch; 卻仍又跑出那個該死的 Project Newmag.exe raised exception clases EOleException with message '查詢太過複雜' 這就讓我十分的難解與不明白.... 同樣的資料庫結構,為啥會有兩種不同的結果.. 我去大陸那兒的論壇查過,有人也碰到類似的問題。 那麼,他查的結果,是使用ADO 連 ACCESS 的資料庫有這問題。 而連接 SQL 的資料庫時,就不會有這個情況發生。 但是也沒找到一個解決的方法.. 請問那位大大有啥好的 idea 嗎? 感激不盡.... 努力學習中....
------
努力學習中.... |
tonytop
中階會員 發表:6 回覆:114 積分:89 註冊:2003-12-04 發送簡訊給我 |
|
iann
一般會員 發表:17 回覆:31 積分:14 註冊:2003-08-30 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |