使用ADO元件連接Access資料庫?? |
尚未結案
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
nlj859, 您好
1.可使用ADOQuery元件,將ADOQuery的Connecion屬性設為ADOConnecion,
亦可直接設定ADOQuery的ConnecionString,其方法與第2個解答相同。
取出所要欄位的資料方法如下:
ADOQuery->Close();
ADOQuery->SQL->Clear();
ADOQuery->SQL->Text = "select * from TableNmae"; // TableName為您的Table名稱
ADOQuery->Open();
Label->CAption = ADOQuery->FieldByName("FieldName")->AsString; // FieldByName為您的欄位名稱 2.可透過ADOConnection連結,然後其他ADO元件再透過ADOConnection動作,
ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename + ";Jet OLEDB:Database Password="; // filename為您的Access路徑 您的兩個問題在本站裡應該都有討論過了,
望您善用本站的搜尋系統,
相信您會得到更多東西。 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
引言: nlj859, 您好 1.可使用ADOQuery元件,將ADOQuery的Connecion屬性設為ADOConnecion, 亦可直接設定ADOQuery的ConnecionString,其方法與第2個解答相同。 取出所要欄位的資料方法如下: ADOQuery->Close(); ADOQuery->SQL->Clear(); ADOQuery->SQL->Text = "select * from TableNmae"; // TableName為您的Table名稱 ADOQuery->Open(); Label->CAption = ADOQuery->FieldByName("FieldName")->AsString; // FieldByName為您的欄位名稱 2.可透過ADOConnection連結,然後其他ADO元件再透過ADOConnection動作, ADOConnection1->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" filename ";Jet OLEDB:Database Password="; // filename為您的Access路徑 您的兩個問題在本站裡應該都有討論過了, 望您善用本站的搜尋系統, 相信您會得到更多東西。 ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之再請問一下,下面那一句可以直接下條件where xxx=yyy嗎? ADOQuery->SQL->Text = "select * from TableNmae"; 如果再上面SQL已輸入FieldName,那還需不需要用FieldbyName? 或是一定要使用這種來表示? Label->Caption = ADOQuery->FieldByName("FieldName")->AsString; 我都已試過,都還是有問題,不曉得是哪裡有問題了.. 請幫忙一下,謝謝. |
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
引言: 再請問一下,下面那一句可以直接下條件where xxx=yyy嗎? ADOQuery->SQL->Text = "select * from TableNmae"; 如果再上面SQL已輸入FieldName,那還需不需要用FieldbyName? 或是一定要使用這種來表示? Label->Caption = ADOQuery->FieldByName("FieldName")->AsString; 我都已試過,都還是有問題,不曉得是哪裡有問題了.. 請幫忙一下,謝謝.Hi, 當然是可以再加上 where 的條件子句沒有問題. 你可以自行試試. SQL 中寫的是 SQL Command , 但你要取用 Dataset 的資料時, 還是要用 FieldByName 的, 這樣才能確認你要的欄位為何, 當然你也可以用陣列的方式來取得也是一樣的, 如: select a1, a2 from tablea where a1>200 and a2>2150 然後使用 ADOQuery1->Fields[0]->AsString 來取得資料和使用 ADOQuery1->FieldByName("a1")->AsString 是一樣地. 另, 你試過都有問題, 請問是什麼樣的問題呢, 可以描述得更完整一點嗎? 這樣有助於解決你的問題. |
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
hi all, 我有一個access database,裡面有一個名為EqData的table
我在我的application的form上拉上一個ADOConnection和ADOQuery
ADOConnection的ConnectionString連到Access資料庫,且經過測試沒問題.
ADOQuery的Connection選擇ADOConnection Form上有一Label和Button.我在Button下加入:
void __fastcall TForm1::BitBtn1Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Text = "select Current from EqData where Current=0.8";
ADOQuery1->Open();
Label1->Caption = ADOQuery1->FieldByName("Current")->AsString;
}
執行後,按下Button,他出現debug的畫面.
不曉得有哪一個步驟有錯誤,可否幫我看一下.
感激不盡/
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
nlj859, 您好
1.請問Current的DataType為何?
若為文字,則需在其前後加上單引號,
例如:ADOQuery1->SQL->Text = "select Current from EqData where Current='0.8'"; 2.請提供debug畫面的資料或圖片,
以便更了解問題點。 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
nlj859, 您好
剛剛查了一下發現,
Current是Keyword,
所以才會造成您的SQL語法有誤。
解決方法有二:
1.將Keyword用[]括起來,方式如下:
ADOQuery1->SQL->Text = "select Current from EqData where [Current]=0.8"; 2.修改資料庫的FieldName,避開Keyword。
例如:將Current改為Currents或是MyCurrent......等等。 =================================
涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。
是非終日有,不聽自然無
天下本無事,庸人自擾之
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |