新增資料的問題 |
尚未結案
|
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
請問: 我的程式如下:
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values(aaa,bbb)");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); 為什麼在執行時都會有
查詢運算式'U_ID='123456' insert int Account_List(U_ID,PWD) values(aaa,bbb)'中的語法錯誤(少了運算元)
的錯誤 要怎麼才能新增一筆資料到我的table內呢?
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
jacksonhuang大大,您好!
不知道我理解的正確與否,您是否是想將U_ID(aaa)和PWD(bbb)添加到名爲Account_List的Table中呢?如果是,請您看看下面的code
< class="code">
ADOQuery1->Insert();
ADOQuery1->FieldValues["U_ID"] = aaa;
ADOQuery1->FieldValues["PWD"] = "bbb";
ADOQuery1->Post();
當然也可以通過SQL語句Insert來新增一筆資料,您再看看這樣能否Run:
ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)"); ADOQuery1->SQL->Add("values(aaa,'bbb')"); ADOQuery1->ExecSQL(); ADOQuery1->Open();我也是一知半解,如有謬誤,請您指出,謝謝 < class="code"> =============== 人生在勤,不索何获? =============== 發表人 - bigdogchina 於 2004/04/26 13:28:42
------
人生在勤,不索何获? |
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
bigdogchina大大您好: 謝謝您撥空回答 我如果用 ADOQuery1->Insert();
ADOQuery1->FieldValues["U_ID"] = aaa; 這行會有錯誤
ADOQuery1->FieldValues["PWD"] = "bbb";
ADOQuery1->Post(); 我如果用
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values(aaa,'bbb')");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); 則還是會出現
insert into Account_List(U_ID,PWD) values(aaa,'bbb')中的語法錯誤(少了運算元)
的錯誤訊息 我忘了說~我兩個欄位的type都是char的,不知道有和別的type有沒有差
謝謝~~
|
yachanga
資深會員 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
不知您的aaa, bbb 指的是文字內容,還是變數
如果是內容, 請試試如下 ADOQuery1->Insert();
ADOQuery1->FieldValues["U_ID"] = "aaa";
ADOQuery1->FieldValues["PWD"] = "bbb";
ADOQuery1->Post(); ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values('aaa','bbb')");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); 如果是變數 試試看 ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values('" aaa "','" bbb "')");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); 發表人 - yachanga 於 2004/04/26 23:38:27
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
引言: bigdogchina大大您好: 謝謝您撥空回答 我如果用 ADOQuery1->Insert(); ADOQuery1->FieldValues["U_ID"] = aaa; 這行會有錯誤 ADOQuery1->FieldValues["PWD"] = "bbb"; ADOQuery1->Post(); 我如果用 ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)"); ADOQuery1->SQL->Add("values(aaa,'bbb')"); ADOQuery1->ExecSQL(); ADOQuery1->Open(); 則還是會出現 insert into Account_List(U_ID,PWD) values(aaa,'bbb')中的語法錯誤(少了運算元) 的錯誤訊息 我忘了說~我兩個欄位的type都是char的,不知道有和別的type有沒有差 謝謝~~不好意思,對不起,因爲我看見您在問題中說:'U_ID='123456',所以我猜想您的U_ID是int型,不是char型的!!!看了您的話後我才知道原來兩個欄位都是char型的,我又畫蛇添足了。當都是char型時,具體的修改請看yachanga大大的回答。 < class="code"> =============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
yachanga大大您好: 我用
ADOQuery1->Insert();
ADOQuery1->FieldValues["U_ID"] = "aaa";
ADOQuery1->FieldValues["PWD"] = "bbb";
ADOQuery1->Post();
還是會有以下錯誤
若是用
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values('aaa','bbb')");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); 也是會有錯誤
第二個方式的錯誤訊息
第一個方式的錯誤訊息 註:會不會是因為那一個地方的屬性沒有設定的關係呢?? 謝謝........ 發表人 - jacksonhuang 於 2004/04/27 08:20:52
|
yachanga
資深會員 發表:24 回覆:335 積分:296 註冊:2003-09-27 發送簡訊給我 |
您好 第一個方法錯誤訊息是因為資料表未打開
ADOQuery1->Open;
ADOQuery1->Insert();
ADOQuery1->FieldValues["U_ID"] = "aaa5678";
ADOQuery1->FieldValues["PWD"] = "bbb5678";
ADOQuery1->Post(); 第二個方法錯誤是因為主鍵值重複
請確定U_ID or PWD 哪一個為主鍵值
小弟猜您U_ID為主鍵值 而且aaa 已經塞過了,請找一個資料表有沒有aaa資料 所以先請測試, 看看以下可不可行
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values('aaa1234','bbb1234')");
ADOQuery1->ExecSQL();
ADOQuery1->Open(); ~悠遊法國號~
|
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
jacksonhuang, 您好
您的程式會有錯誤訊息是因為最後一行ADOQuery1->Open();的問題,
猜想您是要看insert後的結果,
如果真的是這樣的話,
可以在ADOQuery1->Open();之前再加上以下的程式碼:
ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Text = "select * from Account_List ";試試看囉! ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。> <>是非終日有,不聽自然無> <>天下本無事,庸人自擾之> |
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
tech_state大大您好: 加上那一段程式碼後,錯誤沒有了 可是我去看db卻沒有新增資料 以下是程式碼~寫在Button1Click
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "select * from Account_List";
ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)");
ADOQuery1->SQL->Add("values('aaa1234','bbb1234')");
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "select * from Account_List";
ADOQuery1->Open(); 不知是為什麼~??
謝謝您撥空回答........
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
引言: tech_state大大您好: 加上那一段程式碼後,錯誤沒有了 可是我去看db卻沒有新增資料 以下是程式碼~寫在Button1Click ADOQuery1->Close(); ADOQuery1->SQL->Clear(); // ADOQuery1->SQL->Text = "select * from Account_List"; ADOQuery1->SQL->Add("insert into Account_List(U_ID,PWD)"); ADOQuery1->SQL->Add("values('aaa1234','bbb1234')"); ADOQuery1->ExecSQL(); ADOQuery1->Close(); ADOQuery1->SQL->Clear(); ADOQuery1->SQL->Text = "select * from Account_List"; ADOQuery1->Open(); 不知是為什麼~?? 謝謝您撥空回答........jacksonhuang, 您好 請注意以上紅色部分。 至於何時要使用ExecSQL(); 何時要使用Open(); 請參考第七期電子報。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
jacksonhuang
一般會員 發表:26 回覆:22 積分:9 註冊:2004-04-20 發送簡訊給我 |
|
bigdogchina
版主 發表:238 回覆:523 積分:312 註冊:2003-04-28 發送簡訊給我 |
不好意思,問題已經解案,小弟我仍想再對何時要使用ExecSQL(),何時要使用Open()補充兩句(tech_state版大,別打我啊,下次不敢了) 要在運行時執行查詢,可以使用 class="code">
try
{
Query1->Open();
}
catch(Exception &E)
{
if(!dynamic_cast
=============== 人生在勤,不索何获? ===============
------
人生在勤,不索何获? |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |