DBGrid沒有出現正確表格內容的問題 |
尚未結案
|
joey_yang
一般會員 發表:6 回覆:5 積分:2 註冊:2004-02-26 發送簡訊給我 |
各位高手,小弟又有個問題想請教大家了,
我以ADOQuery將資料加入資料庫的程式段落如下: ADOQuery_Csv->Close();
ADOQuery_Csv->SQL->Clear();
ADOQuery_Csv->SQL->Add("Insert into test(識別碼,positions) values (" other_data[0] ",'" other_data[1] "')");
ADOQuery_Csv->ExecSQL(); 今天我把二筆資料放入表格內(表格看的到內容),但很奇怪的是DBGrid的資料確始終只有一筆而已(第一筆是正確的),不知各位高手能否看出來問題可能在那裡?相關的設定如下:
ADOQuery_Csv->Close();
ADOConnection_Rtable->ConnectionString="Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" DBPath;
ADOConnection_Rtable->LoginPrompt=false;
ADOConnection_Rtable->Connected=true;
ADODataSet_Rtable->Active=false;
ADODataSet_Rtable->CommandType=cmdTable;
ADODataSet_Rtable->CommandText="Test";
ADODataSet_Rtable->Active=true;
DataSource_Rtable->DataSet=ADODataSet_Rtable;
DBGrid_Rtable->DataSource=DataSource_Rtable; 還有若上面資料表想設定識別碼欄位為自動增加的索引,又該如何設定呢?目前我只能做到索引,但自動增加則做不出來?
Create table test(識別碼 int primary key,positions char(12),longitude char(10),latitude char(10),name char(50)); 請教各位先進,謝謝!
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
Dear Joey_yang, 你應該是沒有 update adoquery.
最簡單的測試方法是將 DataBase Close 後再打開.
若新資料有出現,則表示是 Update 的問題.
這時你要在資料寫入後加入一些程式. ADOQuery_Csv->ApplyUpdates();
ADOQuery_Csv->CommitUpdates(); void __fastcall TDM1::ADOQuery_CsvUpdateRecord(TDataSet *DataSet,
TUpdateKind UpdateKind, TUpdateAction &UpdateAction)
{
ADOQuery_Csv->UpdateObject = UpdateIndex;
UpdateIndex->SetParams(UpdateKind);
UpdateIndex->ExecSQL(UpdateKind);
UpdateAction = uaApplied ;
}
|
joey_yang
一般會員 發表:6 回覆:5 積分:2 註冊:2004-02-26 發送簡訊給我 |
引言: Dear Joey_yang, 你應該是沒有 update adoquery. 最簡單的測試方法是將 DataBase Close 後再打開. 若新資料有出現,則表示是 Update 的問題. 這時你要在資料寫入後加入一些程式. ADOQuery_Csv->ApplyUpdates(); ADOQuery_Csv->CommitUpdates(); void __fastcall TDM1::ADOQuery_CsvUpdateRecord(TDataSet *DataSet, TUpdateKind UpdateKind, TUpdateAction &UpdateAction) { ADOQuery_Csv->UpdateObject = UpdateIndex; UpdateIndex->SetParams(UpdateKind); UpdateIndex->ExecSQL(UpdateKind); UpdateAction = uaApplied ; }可是 ApplyUpdates()和CommitUpdates(); 並非ADOQuery_Csv的函數耶.... 所以好像還是不能解決... 不好意思..能否請您說的比較詳細一點嗎? 真的很感謝! |
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
|
joey_yang
一般會員 發表:6 回覆:5 積分:2 註冊:2004-02-26 發送簡訊給我 |
|
erosme
初階會員 發表:5 回覆:44 積分:29 註冊:2002-12-23 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
joey_yang, 您好
只要如同erosme所說,
在ADOQuery_Csv->ExecSQL();之後,
加上ADODataSet_Rtable->Active=false;
ADODataSet_Rtable->Active=true;
就可看到該Table中的所有資料,
不知您說感覺上好像還是不行
是怎麼樣不行,可否請您再描述清楚一點? =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |