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

ADO 連 ACCESS 的[查詢太過複雜]問題

答題得分者是:tonytop
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-12-09 18:57:22 IP:61.31.xxx.xxx 未訂閱
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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-18 16:28:27 IP:210.64.xxx.xxx 未訂閱
把ADOQuery1屬性CursorLocation設為 clUseServer 就沒這問題了,Try it. 忙盲茫
iann
一般會員


發表:17
回覆:31
積分:14
註冊:2003-08-30

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-12-20 18:12:50 IP:61.31.xxx.xxx 未訂閱
tonytop 大大~~ 真的可以了耶 < > 終於解決了.... 感恩不盡.... < > 努力學習中....
------
努力學習中....
系統時間:2024-05-18 6:59:28
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!