線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1407
推到 Plurk!
推到 Facebook!

有關如何取得BDE的DataBase的Definition的問題

尚未結案
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-03-04 13:11:13 IP:211.73.xxx.xxx 未訂閱
各位先進: 對小弟而言Delphi本人是新手,本公司開發的應用軟體有用Delphi 5,VB, PowerBuilder 5等開發工具,資料庫有 SQL Server 2000,Sybase 等等 ... 最近有個需求是Delphi程式去執行PowerBuilder程式,因此產生了許多問題. 本公司MIS系統是Delphi開發的,可連接不同的分公司,不同的分公司使用不同 的資料庫,所以在BDE建立不同的DataBase Aliases,問題來了當Delphi程式去 Call PowerBuilder程式時,PowerBuilder程式如何知道去連接那個資料庫, 因此本人希望各位先進能幫忙解決小弟的問題如下: 1) 從Delphi程式中取得目前正在執行的資料庫資訊,如何由BDE取得實際的 Server Name,DataBase Name,User Name, PassWord 等.... 2) 將由前項取得的資料寫入一個檔案(某某.INI) 如此PowerBuilder程式就可以透過(某某.INI)檔案連接資料庫了 小弟敬請各位先進不吝指教,在此謝過 發表人 - nullx 於 2004/03/04 13:15:00
------
蔡俊德
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-03-04 13:47:30 IP:210.65.xxx.xxx 未訂閱
Hi nullx,    歡迎加入 Delphi K.Top    1.
procedure TMainForm.Button2Click(Sender: TObject);
begin
    Edit_Server_Name.Text := DBTAS.Params.Values['SERVER NAME'];
    Edit_DataBase_Name.Text := DBTAS.Params.Values['DATABASE NAME'];
    Edit_User_ID.Text := DBTAS.Params.Values['USER NAME'];
    Edit_Password.Text := DBTAS.Params.Values['PASSWORD'];
end;
其中 DBTAS 為 TDataBase 2.
procedure TMainForm.ButtonSaveClick(Sender: TObject);
var
  MyIniFile: TIniFile;
begin
    IF FileExists(IniFile) THEN
        BEGIN
            MyIniFile := TIniFile.Create(IniFile);
            WITH MyIniFile DO
                BEGIN
                    WriteString('DATABASE','SERVER NAME',Edit_Server_Name.Text);
                    WriteString('DATABASE','DATABASE NAME',Edit_DataBase_Name.Text);
                    WriteString('DATABASE','USER NAME',Edit_User_ID.Text);
                    WriteString('DATABASE','PASSWORD',Edit_Password.Text);
                END;
            MyIniFile.Free;
        END;
end;
---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-03-04 15:05:04 IP:211.73.xxx.xxx 未訂閱
感謝Fishman先進的回應 本公司使用SQL Server 2000的資料庫NT Server平台,所以Delphi程式用SafeVcl 的Packages中的TMsSQLSafe元件來連接資料庫,不是Data Access的Packages中的 DataBase元件來連接資料庫,兩者很相似,針對第一個問題若用類似的方式如: 其中 DBTAS 為 TMsSQLSafe 以下二者的值皆為empty DBTAS.Params.Values['SERVER NAME']; DBTAS.Params.Values['DATABASE NAME']; 但是UserName,PassWord,AliasName是知道的,所以小弟才想透過BDE取得實際的Server Name,DataBase Name. 不知Fishman先進是否有其他方法或由Session方面取得Server Name,DataBase Name 在此感謝Fishman先進的指教 蔡俊德
------
蔡俊德
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-03-04 15:05:17 IP:211.73.xxx.xxx 未訂閱
感謝Fishman先進的回應 本公司使用SQL Server 2000的資料庫NT Server平台,所以Delphi程式用SafeVcl 的Packages中的TMsSQLSafe元件來連接資料庫,不是Data Access的Packages中的 DataBase元件來連接資料庫,兩者很相似,針對第一個問題若用類似的方式如: 其中 DBTAS 為 TMsSQLSafe 以下二者的值皆為empty DBTAS.Params.Values['SERVER NAME']; DBTAS.Params.Values['DATABASE NAME']; 但是UserName,PassWord,AliasName是知道的,所以小弟才想透過BDE取得實際的Server Name,DataBase Name. 不知Fishman先進是否有其他方法或由Session方面取得Server Name,DataBase Name 在此感謝Fishman先進的指教 蔡俊德
------
蔡俊德
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-03-04 15:05:32 IP:211.73.xxx.xxx 未訂閱
感謝Fishman先進的回應 本公司使用SQL Server 2000的資料庫NT Server平台,所以Delphi程式用SafeVcl 的Packages中的TMsSQLSafe元件來連接資料庫,不是Data Access的Packages中的 DataBase元件來連接資料庫,兩者很相似,針對第一個問題若用類似的方式如: 其中 DBTAS 為 TMsSQLSafe 以下二者的值皆為empty DBTAS.Params.Values['SERVER NAME']; DBTAS.Params.Values['DATABASE NAME']; 但是UserName,PassWord,AliasName是知道的,所以小弟才想透過BDE取得實際的Server Name,DataBase Name. 不知Fishman先進是否有其他方法或由Session方面取得Server Name,DataBase Name 在此感謝Fishman先進的指教
------
蔡俊德
Fishman
尊榮會員


發表:120
回覆:1949
積分:2163
註冊:2006-10-28

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-03-04 15:20:44 IP:210.65.xxx.xxx 未訂閱
Hi nullx,    很抱歉並沒有使用過 TMsSQLSafe 元件,對於其屬性不是很熟,看看其它大大是否有這方面的經驗 ---------------------------------- 小弟才疏學淺,若有謬誤尚請不吝指教 ----------------------------------
------
Fishman
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-03-04 16:56:13 IP:211.73.xxx.xxx 未訂閱
感謝Fishman先進的回應 本公司使用SQL Server 2000的資料庫NT Server平台,所以Delphi程式用SafeVcl 的Packages中的TMsSQLSafe元件來連接資料庫,不是Data Access的Packages中的 DataBase元件來連接資料庫,兩者很相似,針對第一個問題若用類似的方式如: 其中 DBTAS 為 TMsSQLSafe 以下二者的值皆為empty DBTAS.Params.Values['SERVER NAME']; DBTAS.Params.Values['DATABASE NAME']; 但是UserName,PassWord,AliasName是知道的,所以小弟才想透過BDE取得實際的Server Name,DataBase Name. 不知Fishman先進是否有其他方法或由Session方面取得Server Name,DataBase Name 在此感謝Fishman先進的指教
------
蔡俊德
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-03-08 10:36:14 IP:211.73.xxx.xxx 未訂閱
1.
procedure TMainForm.Button2Click(Sender: TObject);
begin
    Edit_Server_Name.Text := DBTAS.Params.Values['SERVER NAME'];
    Edit_DataBase_Name.Text := DBTAS.Params.Values['DATABASE NAME'];
    Edit_User_ID.Text := DBTAS.Params.Values['USER NAME'];
    Edit_Password.Text := DBTAS.Params.Values['PASSWORD'];
end;
其中 DBTAS 為 TDataBase 這是本人針對上面問題所找到的答案 : var server_name,database_name : string; MyStringList : Tstrings; //Get BDE env From Aliasname Into ListBox1 MyStringList := TStringList.Create; try Session.GetAliasParams(DataBase.AliasName,MyStringList); //'hoyard is Alias name ListBox1.Items := MyStringList; server_name := MyStringList.Values['SERVER NAME']; //抓出Alias 對應的伺服器名稱 database_name := MyStringList.Values['DATABASE NAME']; //抓出Alias 對應的資料庫名稱 finally MyStringList.Free;
------
蔡俊德
nullx
一般會員


發表:3
回覆:8
積分:2
註冊:2002-07-22

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-03-08 10:36:30 IP:211.73.xxx.xxx 未訂閱
1.
procedure TMainForm.Button2Click(Sender: TObject);
begin
    Edit_Server_Name.Text := DBTAS.Params.Values['SERVER NAME'];
    Edit_DataBase_Name.Text := DBTAS.Params.Values['DATABASE NAME'];
    Edit_User_ID.Text := DBTAS.Params.Values['USER NAME'];
    Edit_Password.Text := DBTAS.Params.Values['PASSWORD'];
end;
其中 DBTAS 為 TDataBase 這是本人針對上面問題所找到的答案 : var server_name,database_name : string; MyStringList : Tstrings; //Get BDE env From Aliasname Into ListBox1 MyStringList := TStringList.Create; try Session.GetAliasParams(DataBase.AliasName,MyStringList); //'hoyard is Alias name ListBox1.Items := MyStringList; server_name := MyStringList.Values['SERVER NAME']; //抓出Alias 對應的伺服器名稱 database_name := MyStringList.Values['DATABASE NAME']; //抓出Alias 對應的資料庫名稱 finally MyStringList.Free;
------
蔡俊德
系統時間:2024-05-18 15:38:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!