全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:711
推到 Plurk!
推到 Facebook!

如何一開始Connect資料庫系統(先不指定DB)時,就可得知所有的DB ?

尚未結案
kensoong
初階會員


發表:31
回覆:70
積分:45
註冊:2003-05-28

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-10-17 16:57:42 IP:61.56.xxx.xxx 未訂閱
使用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

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-10-20 16:37:33 IP:218.163.xxx.xxx 未訂閱
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

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-10-20 16:57:43 IP:61.56.xxx.xxx 未訂閱
謝謝Mickey兄... 沒錯,這樣只好先暫時使用系統預設的db來connected了... 後來我只好這樣處理. 若堅持使用GetTableNames的話,看來沒有人遇過?我只好自己debug了耶.
系統時間:2024-05-19 14:14:56
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!