路徑問題... |
答題得分者是:tech_state
|
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
|
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
braveheart, 您好
請試試以下的方法。
String FilePath = ExtractFilePath(Application->ExeName); //取得目前檔案路徑,假設您的資料庫(access檔案)與AP放在相同目錄。 DBPath = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source =" FilePath "Test.MDB"; //設定連接字串(ADOConnection的連接字串)================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 |
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
|
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
|
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
braveheart, 您好
很抱歉沒有說清楚,DBPath是我自己宣告的String。
而其代表的意思是ADOConnection、ADOQuery、ADOTable等元件的ConnectionString屬性的值。
至於要寫在哪一個事件中,我想沒有一定吧!
只要您要將ADOConnection元件的Connected屬性設為true之前,將ConnectionString屬性=DBPath的值。
或是將ADOQuery、ADOTable二個元件的Active屬性設為true之前,將ConnectionString屬性=DBPath的值。
例如:您使用ADOTable元件連結access資料庫。
String DBPath = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\\DB.MDB"; // DB.MDB檔案必須存放在D磁碟槽底下 ADOTable->ConnectionString = DBPath; ADOTable->Active = true;補充: 剛剛想到可以將code寫在某一個固定的事件中,如下: void __fastcall TForm2::ADOTable1BeforeOpen(TDataSet *DataSet) { String DBPath = "Provider = Microsoft.Jet.OLEDB.4.0; Data Source = d:\\DB.MDB"; // DB.MDB檔案必須存放在D磁碟槽底下 ADOTable1->ConnectionString = DBPath; } //--------------------------------------------------------------------------- void __fastcall TForm2::FormCreate(TObject *Sender) { ADOTable1->Active = true; } ================================= 涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。 是非終日有,不聽自然無 天下本無事,庸人自擾之 發表人 - tech_state 於 2003/08/09 23:42:37 |
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
不好意思..突然還有一問題..因為adoconnection在build database時就有路徑問題..雖然會有問題..不過還是可以在別的pc上run..不過我想按照先進的方法加在adoconnection裡..不過還是會出現d:\1.mdb這檔案不存在問題
void __fastcall TForm1::ADOConnection1BeforeConnect(TObject *Sender)
{
String FilePath = ExtractFilePath(Application->ExeName);
ADOConnection1 ->Provider =" Microsoft.Jet.OLEDB.4.0; Data Source =" FilePath "DB.MDB";
}
//--------------------------------------------------------------------
因剛接觸bcb..所以要麻煩先進了...謝謝先進
|
tech_state
版主 發表:44 回覆:638 積分:641 註冊:2003-02-10 發送簡訊給我 |
braveheart, 您好
void __fastcall TForm1::ADOConnection1BeforeConnect(TObject *Sender) { String FilePath = ExtractFilePath(Application->ExeName); ADOConnection1 ->Provider =" Microsoft.Jet.OLEDB.4.0; Data Source =" FilePath "DB.MDB"; }FilePath所得到的路徑是您目前執行檔的路徑。 假設您的AP是放在D:\test\的話,FilePath就會是D:\test 所以您說會出現d:\1.mdb這檔案不存在問題,我想您的AP應該不是放在這個位置(d:\)吧?! 再提醒您一點,如果您要使用上述的code,則您的資料庫必須與AP放在同一個目錄底下。 再試試看吧!有問題再提出來大家一起討論。 有問題表示您有做實驗,有測試,只要我有時間而且是我能力範圍的,不會不告知的。 加油! ================================= <>涵養怒中氣。謹防順口言。留心忙裡錯。珍惜有時錢。> <>是非終日有,不聽自然無> <>天下本無事,庸人自擾之> |
braveheart
一般會員 發表:35 回覆:62 積分:24 註冊:2003-05-21 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |