如何一開始Connect資料庫系統(先不指定DB)時,就可得知所有的DB ? |
尚未結案
|
kensoong
初階會員 發表:31 回覆:70 積分:45 註冊:2003-05-28 發送簡訊給我 |
使用DBExpress 時,如何一開始Connect資料庫系統(先不指定DB)時,就可得知所有的DB ?
因為不指定DataBase時去Connect就會出現Error... ex:
Conn.Params.Values['HostName'] := edtServer.Text;
Conn.Params.Values['User_Name'] := edtAcc.Text;
Conn.Params.Values['Password'] := edtPwd.Text;
Conn.Connected := True;
其中Conn是一個(SQL) Connection元件,而假設要連至SQL Server 2000.
請問應如何解呢?謝謝... 另外,繼續上面程式碼
Conn.GetTableNames(cbDB.Items, True);
showmessage(inttostr(cbDB.Items.Count)); 若使用ADO方式,則會正常地顯示Table數量,若仍用DBExpress方式只秀出0.
Why ?不知那裡出錯了... 發表人 - kensoong 於 2003/10/17 19:21:43 發表人 - kensoong 於 2003/10/17 19:22:35
|
Mickey
版主 發表:77 回覆:1882 積分:1390 註冊:2002-12-11 發送簡訊給我 |
kensoong 你好 : 雖然 MSSQL 的 Login User 有 "default database" 屬性(Login 後, 預設使用的 Database), 但是該屬性的 DataBase 允許不存在(該 database 已經被 drop), 故 DBExpress SQLConnection 要求一定要 有 "DataBase" 參數, 是可以理解的, 如果你須動態重新指定 DataBase ,個人建議, 先 Connect 到 "master", 然後用 SQL : "select name from master.dbo.sysdatabases" 取得 DataBase 清單. SQLConnection.GetTableNames 當連接 MSSQL 時, 為何無效..., 這我也不知, 不過我在 Oracle 試是正常的, 個人建議變通方法, 下 SQL : "select name from sysobjects where type='U'" 取出 Table Name 清單.
|
kensoong
初階會員 發表:31 回覆:70 積分:45 註冊:2003-05-28 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |