如何取得database alias用寫程式的方式? |
答題得分者是:channel
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
|
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
Session.GetAliasNames(TString)
例 :
1. uses dbtables
2. put a memo and a button in your form
3. procedure TForm1.Button1Click(Sender: TObject);
begin
Session.GetAliasNames(Memo1.Lines);
end; 這樣就可以了 Alias 是指在 BDE Admin 設定好了的數據庫
DatabaseName 是 Alias 你程式設定的 Database 元件
|
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言: Session.GetAliasNames(TString) 例 : 1. uses dbtables 2. put a memo and a button in your form 3. procedure TForm1.Button1Click(Sender: TObject); begin Session.GetAliasNames(Memo1.Lines); end; 這樣就可以了 Alias 是指在 BDE Admin 設定好了的數據庫 DatabaseName 是 Alias 你程式設定的 Database 元件我抓到的是database name,不是Alias |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
引言: 我抓到的是database name,不是Alias???????????? 你試試 : 1. 加入一個 Database 元件 任意選一個 alias name Database name 填 aaa 2. 加入另一個 Database 元件 看 alias name, 是沒有 aaa 的 3. 加入一個 Table 元件 看 database name, 是有 aaa 的 4.執行剛才說的 Session.GetAliasNames(Memo1.Lines); 是沒有 aaa 的 換成 Session.GetDatabaseName(Memo1.Lines); 是有 aaa 的 看到 AliasName 和 databasename 的異同了嗎?? |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:可是shown databasename及databsealias有好幾個,若只show此程式用 的databse name與 database aliasname如何用呢引言: 我抓到的是database name,不是Alias???????????? 你試試 : 1. 加入一個 Database 元件 任意選一個 alias name Database name 填 aaa 2. 加入另一個 Database 元件 看 alias name, 是沒有 aaa 的 3. 加入一個 Table 元件 看 database name, 是有 aaa 的 4.執行剛才說的 Session.GetAliasNames(Memo1.Lines); 是沒有 aaa 的 換成 Session.GetDatabaseName(Memo1.Lines); 是有 aaa 的 看到 AliasName 和 databasename 的異同了嗎?? |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
引言: 可是shown databasename及databsealias有好幾個,若只show此程式用 的databse name與 database aliasname如何用呢若你知道你會用那幾個 databasebname / alias 你自已做個 TStringList 裝起它不就好了 ? 若你不懂用 TStringList, 也可放個 Memo 設定 visible = false 然後在 memo.lines 打入你在該程式會用的 aliasname 就好。 若你也不知道會用那幾個 databasename / alias 電腦又甚會知道呢? ShowAliasName / ShowDatabaseName 所列出的,就是你在你的程式可用的 Alias / database,若你要一個你會在你的程式用的 list 就要你自己來做了。 |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 可是shown databasename及databsealias有好幾個,若只show此程式用 的databse name與 database aliasname如何用呢您只要看此程式的AliasName就要看您有沒有用TDatabase元件 若有則AliasName就是您的TDatabasse.AliasName 若無則AliasName就是您的TDataSet(TQuery及TTable).DatabaseName 但要找databse name就有點因難,怎麼說:(就我所知) Oracel:是用Service與BDE作溝通,無法取得databse name Paradox(及local資料庫):沒有databse name,故無法取得databse name MS SQL,Access(....):才有辦法取得databse name,方法如下: 有TDatabase元件:(以MS SQL為例) var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 無TDatabase元件: var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Query1.DatabaseName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end;~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:因alias有兩個(一個正式區,一個test區)如果要抓BDE administrator database alias所定義(definition)的 databasename如何用程式抓到 ?引言: 可是shown databasename及databsealias有好幾個,若只show此程式用 的databse name與 database aliasname如何用呢您只要看此程式的AliasName就要看您有沒有用TDatabase元件 若有則AliasName就是您的TDatabasse.AliasName 若無則AliasName就是您的TDataSet(TQuery及TTable).DatabaseName 但要找databse name就有點因難,怎麼說:(就我所知) Oracel:是用Service與BDE作溝通,無法取得databse name Paradox(及local資料庫):沒有databse name,故無法取得databse name MS SQL,Access(....):才有辦法取得databse name,方法如下:有TDatabase元件:(以MS SQL為例) var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 無TDatabase元件: var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Query1.DatabaseName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end;~小弟淺見,參考看看~ |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 因alias有兩個(一個正式區,一個test區)如果要抓BDE administrator database alias所定義(definition)的 databasename如何用程式抓到 ?我們好像對alias的定義有點不同 我指的alias就是BDE的alias name 您要取得BDE administrator database alias所定義(definition)的 databasename除了用,下列方法,其他的方法我就不知了 有TDatabase元件:(以MS SQL為例) var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 無TDatabase元件: var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Query1.DatabaseName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end;~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
Justmade
版主 發表:94 回覆:1934 積分:2030 註冊:2003-03-12 發送簡訊給我 |
就如channel兄所提的稍作更改 1.用 Session.GetAliasParams(YourAliasName, StringList); 去取得在 BDE Admin Defination 頁所列的 Params
2.用 StringList.Value['DATABASE NAME'] 去直接取得列在 BDE Admin 右邊Defination, DATABASE NAME 欄的資料。 如 channel 君所言,大部份的 alias 都不一定有 DATABASE NAME 的,不過你知道你用的有就行了。
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 就如channel兄所提的稍作更改 1.用 Session.GetAliasParams(YourAliasName, StringList); 去取得在 BDE Admin Defination 頁所列的 Params 2.用 StringList.Value['DATABASE NAME'] 去直接取得列在 BDE Admin 右邊Defination, DATABASE NAME 欄的資料。 如 channel 君所言,大部份的 alias 都不一定有 DATABASE NAME 的,不過你知道你用的有就行了。修正一下Justmade兄的筆誤: StringList.Values['DATABASE NAME']
------
~小弟淺見,參考看看~ |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:請問這一段要放在那procedure? var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 用 StringList.Value['DATABASE NAME'] 去直接取得,放在那..引言: 就如channel兄所提的稍作更改 1.用 Session.GetAliasParams(YourAliasName, StringList); 去取得在 BDE Admin Defination 頁所列的 Params 2.用 StringList.Value['DATABASE NAME'] 去直接取得列在 BDE Admin 右邊Defination, DATABASE NAME 欄的資料。 如 channel 君所言,大部份的 alias 都不一定有 DATABASE NAME 的,不過你知道你用的有就行了。修正一下Justmade兄的筆誤: StringList.Values['DATABASE NAME'] |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 請問這一段要放在那procedure? var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 用 StringList.Value['DATABASE NAME'] 去直接取得,放在那.. procedure TForm1.FormCreate(Sender: TObject); var aSL: TStringList; aDataBaseName, aAliasName: String;//也可宣告在private區...等 begin aAliasName := Database1.AliasName; aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); aDataBaseName := aSL.Values['DATABASE NAME']; finally aSL.Free; end; end;這樣做您就取得此程式用的databse name與 database aliasname 您要將這段寫在那都無所謂,看您的程式要在什麼時機取得 寫在Form Create也可以,如上例 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/19 14:39:10
------
~小弟淺見,參考看看~ |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:出現 expected but identifier 'DATABASE' found 是什麼原因引言: 請問這一段要放在那procedure? var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 用 StringList.Value['DATABASE NAME'] 去直接取得,放在那..procedure TForm1.FormCreate(Sender: TObject); var aSL: TStringList; aDataBaseName, aAliasName: String;//也可宣告在private區...等 begin aAliasName := Database1.AliasName; aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); aDataBaseName := aSL.Values['DATABASE NAME']; finally aSL.Free; end; end;這樣做您就取得此程式用的databse name與 database aliasname 您要將這段寫在那都無所謂,看您的程式要在什麼時機取得 寫在Form Create也可以,如上例 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/19 14:39:10 |
vivi666666
初階會員 發表:83 回覆:94 積分:35 註冊:2003-03-05 發送簡訊給我 |
引言:把aDataBaseName := aSL.Values["DATABASE NAME"]; 改成 aDataBaseName := aSL.Values['DATABASE NAME']; 就ok. 謝謝你們回答我那麼多問題.引言: 請問這一段要放在那procedure? var aSL: TStringList; begin aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); ShowMessage(aSL.Strings[0]); finally aSL.Free; end; end; 用 StringList.Value['DATABASE NAME'] 去直接取得,放在那..procedure TForm1.FormCreate(Sender: TObject); var aSL: TStringList; aDataBaseName, aAliasName: String;//也可宣告在private區...等 begin aAliasName := Database1.AliasName; aSL := TStringList.Create; try Session.GetAliasParams(Database1.AliasName, aSL); aDataBaseName := aSL.Values['DATABASE NAME']; finally aSL.Free; end; end;這樣做您就取得此程式用的databse name與 database aliasname 您要將這段寫在那都無所謂,看您的程式要在什麼時機取得 寫在Form Create也可以,如上例 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/03/19 14:39:10 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |