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

一對多資料擷取發生錯誤

答題得分者是:herbert2
littlecheng
一般會員


發表:9
回覆:6
積分:3
註冊:2008-07-05

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-09-09 11:57:26 IP:59.125.xxx.xxx 訂閱
我用了 兩個TADOQuery(q1跟q2)
q1 查詢商品部門資料,

q1->SQL->Text="select * from dept";
q1->Open();

q2:查詢商品資料,這裡的資料我希望由q1指向的dept資料來帶出來

所以我在q1的OnMoveComplete事件中寫了

String depNo=q1->FieldByName("deptNo")->AsString;
q2->SQL->Text="select * from item where deptNo='"dept_No "'";
q2->Open();

然後卻發生了錯誤,我不能理解這個錯誤的原因,還請各位指導。



編輯記錄
littlecheng 重新編輯於 2008-09-09 11:58:16, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-09-09 21:04:29 IP:118.167.xxx.xxx 未訂閱
請問有練習程式可以參考嗎?
herbert2
尊榮會員


發表:58
回覆:640
積分:894
註冊:2004-04-16

發送簡訊給我
#3 引用回覆 回覆 發表時間:2008-09-11 14:41:56 IP:211.72.xxx.xxx 訂閱
應更正如下:
q2->SQL->Text = "select * from item where deptNo = '" depNo "'";

ColumnName = 'Strins Value' 寫法, 須每次變更 q2->SQL->Text, 效率較不理想.

改為:
q2->SQL->Text = "select * from item where deptNo = :depNo";

且於 q1->AfterScroll() 時執行:
// 可先判斷是否 q1 真的已換到新錄, 因已在 1st Record 再 Up 仍會觸發 AfterScroll(),
// 且很多其他動作也會觸發 AfterScroll().
q2->Close();
q2->ParamByName("depNo")->AsString = q1->FieldByName("deptNo")->AsString;
q2->Open();

如此 TQuery 可以省去每次重新解譯 SQL 指令的時間.
編輯記錄
herbert2 重新編輯於 2008-09-11 14:47:56, 註解 無‧
littlecheng
一般會員


發表:9
回覆:6
積分:3
註冊:2008-07-05

發送簡訊給我
#4 引用回覆 回覆 發表時間:2008-09-17 09:50:53 IP:59.125.xxx.xxx 訂閱
在主表的afterScroll事件中寫了這樣的程式碼
String customer_no=queryCustomer->FieldByName("customer_no")->AsString;
queryPurchMain->Close();
queryPurchMain->SQL->Text="select * from purchmain where customer_no=:p1";
queryPurchMain->Parameters->ParamByName("p1")->Value=customer_no;
queryPurchMain->Open();

又發生令人費解的錯誤。
編輯記錄
littlecheng 重新編輯於 2008-09-17 09:52:50, 註解 無‧
careychen
尊榮會員


發表:41
回覆:580
積分:959
註冊:2004-03-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2008-09-17 11:15:16 IP:218.210.xxx.xxx 訂閱
請參考這篇 adoquery1: parameter 'A' not found ,使用 hagar 版主的

ADOQuery.Parameters.ParseSQL(ADOQuery.SQL.Text, True)


===================引 用 littlecheng 文 章===================
在主表的afterScroll事件中寫了這樣的程式碼
String customer_no=queryCustomer->FieldByName("customer_no")->AsString;
queryPurchMain->Close();
queryPurchMain->SQL->Text="select * from purchmain where customer_no=:p1";
queryPurchMain->Parameters->ParamByName("p1")->Value=customer_no;
queryPurchMain->Open();

又發生令人費解的錯誤。
------
價值的展現,來自於你用哪一個角度來看待它!!
系統時間:2024-03-29 17:14:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!