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

新增多筆資料

尚未結案
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-13 03:56:53 IP:218.162.xxx.xxx 未訂閱
這是我寫的新增資料的程式,可是我想輸入多筆,像是Edit1~8都是Date_code的資料,ComboBox2~9都是Offer_Id的資料... ADOTable1->Insert(); ADOTable1->FieldByName("Date_code")->Value=Edit1->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox2->Text; ADOTable1->FieldByName("Number")->Value=Edit9->Text; ADOTable1->FieldByName("Date_Count")->Value=Edit25->Text; ADOTable1->FieldByName("Delivered_date")->Value=Edit33->Text; ADOTable1->Post(); 可是如果我把程式寫成這樣: ADOTable1->Insert(); ADOTable1->FieldByName("Date_code")->Value=Edit1->Text; ADOTable1->FieldByName("Date_code")->Value=Edit2->Text; ADOTable1->FieldByName("Date_code")->Value=Edit3->Text; ADOTable1->FieldByName("Date_code")->Value=Edit4->Text; ADOTable1->FieldByName("Date_code")->Value=Edit5->Text; ADOTable1->FieldByName("Date_code")->Value=Edit6->Text; ADOTable1->FieldByName("Date_code")->Value=Edit7->Text; ADOTable1->FieldByName("Date_code")->Value=Edit8->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox2->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox3->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox4->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox5->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox6->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox7->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox8->Text; ADOTable1->FieldByName("Offer_Id")->Value=ComboBox9->Text; . . . ADOTable1->Post(); 它好像不理會我其他的新增,只選擇最後那個資料,並沒辦法全部新增進去耶 有誰知道我要怎麼改程式嗎? 謝謝....
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-13 08:37:04 IP:211.20.xxx.xxx 未訂閱
ADOTable1->Insert(); ... ADOTable1->Post(); 因為 Insert()~Post();之間的資料算是一筆資料 你將Edit1~8都放進同一個欄位Date_code 在Post時它只會把最後一個存進去 就相當於你把8個資料都放進同一個變數 最後再printf出來看一樣 你只會看到最後一個值 這樣說明不知你看不看的懂 就是丟完一筆資料做一次Post PS:一筆資料不等於一個欄位唷~~
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-13 09:20:48 IP:219.130.xxx.xxx 未訂閱
如果你的Edit及ComboBox命名是有規則的化可以利用
FindComponent()達到目的。
以你例子:
for (int i=1;i<9;i  ){
  ADOTable1->Insert();
  ADOTable1->FieldByName("Date_code")->Value=(TEdit *)FindComponent("Edit" IntToStr(i)))->Text;
  ADOTable1->FieldByName("Offer_Id")->Value=(TComboBox *)FindComponent("ComboBox" IntToStr(i 1)))->Text;
  ADOTable1->Post();
}
請參考!
Andy Chang 發表人 - andychang1690 於 2004/08/13 09:23:02
------
Andy Chang
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-13 13:02:01 IP:218.162.xxx.xxx 未訂閱
嗯嗯... 我明白了 那我大概知道怎麼去改了 謝謝你的解答
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-13 13:16:01 IP:218.162.xxx.xxx 未訂閱
請問一下,那如果想要讓空白的Edit和ComboBox不存入資料庫,要用什麼指令呢?
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-13 13:24:20 IP:211.20.xxx.xxx 未訂閱
用 if 判斷 Edit 是否為空白 再讓它做或不做存值的那個動作 發表人 - folkchen 於 2004/08/13 13:26:05
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-08-13 13:29:42 IP:218.162.xxx.xxx 未訂閱
// for (int i=1;i<9;i ){ ADOTable1->Insert(); ADOTable1->FieldByName("Date_code")->Value=(TEdit *)FindComponent("Edit" IntToStr(i)))->Text; ADOTable1->FieldByName("Offer_Id")->Value=(TComboBox *)FindComponent("ComboBox" IntToStr(i 1)))->Text; ADOTable1->Post(); } 請參考! // 這段指令它告訴我有"Text"is not a number of TComponent... 是哪錯了嗎? 還是它還要定義些什麼呢
folkchen
高階會員


發表:9
回覆:232
積分:173
註冊:2003-10-09

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-08-13 13:37:29 IP:211.20.xxx.xxx 未訂閱
ADOTable1->FieldByName("Date_code")->Value=((TEdit *)FindComponent("Edit" IntToStr(i)))->Text; 少了一個左括號的樣子
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-08-13 14:26:32 IP:61.142.xxx.xxx 未訂閱
哈哈!對不起
CommboBox不能這樣處理!
#>    >>>>>>>>>>>    
        
------
Andy Chang
lena
一般會員


發表:12
回覆:13
積分:5
註冊:2004-04-19

發送簡訊給我
#10 引用回覆 回覆 發表時間:2004-08-18 16:32:57 IP:218.162.xxx.xxx 未訂閱
#include  TComponent *pComponent; PTypeInfo ptrTypeInfo; for (int i=1;i<9;i ){ ADOTable1->Insert(); ADOTable1->FieldByName("Date_code")->Value=((TEdit *)FindComponent("Edit" IntToStr(i)))->Text; pComponent=(TComponent *)FindComponent("ComboBox" IntToStr(i)); ptrTypeInfo=(PTypeInfo ) pComponent->ClassInfo(); if ((AnsiString)ptrTypeInfo->Name=="TComboBox" ) { TComboBox *pComboBox; pComboBox=(TComboBox *) pComponent; ADOTable1->FieldByName("Offer_Id")->ValuepComboBox->Text; } ADOTable1->Post(); } 這段程式有E2316 'ValueComboBox'is not a number of 'TField' W8004 'pComboBox'is assigned a value that is never used 的錯誤,是什麼意思阿?
andychang1690
資深會員


發表:20
回覆:694
積分:442
註冊:2003-03-14

發送簡訊給我
#11 引用回覆 回覆 發表時間:2004-08-18 16:36:43 IP:219.132.xxx.xxx 未訂閱
引言: #include TComponent *pComponent; PTypeInfo ptrTypeInfo; for (int i=1;i<9;i ){ ADOTable1->Insert(); ADOTable1->FieldByName("Date_code")->Value=((TEdit *)FindComponent("Edit" IntToStr(i)))->Text; pComponent=(TComponent *)FindComponent("ComboBox" IntToStr(i)); ptrTypeInfo=(PTypeInfo ) pComponent->ClassInfo(); if ((AnsiString)ptrTypeInfo->Name=="TComboBox" ) { TComboBox *pComboBox; pComboBox=(TComboBox *) pComponent; ADOTable1->FieldByName("Offer_Id")->ValuepComboBox->Text; } ADOTable1->Post(); } 這段程式有E2316 'ValueComboBox'is not a number of 'TField' W8004 'pComboBox'is assigned a value that is never used 的錯誤,是什麼意思阿?
上面紅字部分應該為 ADOTable1->FieldByName("Offer_Id")->Value=pComboBox->Text; Andy Chang
------
Andy Chang
系統時間:2024-05-04 17:28:51
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!