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

開啟資料庫時出現Loin的問題

尚未結案
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2002-12-26 01:53:49 IP:211.74.xxx.xxx 未訂閱
我寫了幾段如下所示之Function 再執行時有幾個Function會出現DataBase Login的畫面.有的卻不會 且這幾段Function結構均相同,為開啟的資料表不同而已 請先進指點指點..Thanks function READ_ST (NO :STRING):STRING; VAR Query1 : TQUERY; begin TRY Query1 := TQUERY.Create(APPLICATION.Owner); Query1.DatabaseName := 'DB1'; //Query1.Database.LoginPrompt := False; //**error Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM ST'); QQuery1.SQL.Add('WHERE TENO = ''' NO ''''); Query1.Close; Query1.Open; IF Query1.Eof = FALSE THEN RESULT := Query1.FieldByName('LVE').AsString; IF Query1.Eof = TRUE THEN RESULT := ''; FINALLY Query1.Free; END; end;
FrederickPau
資深會員


發表:4
回覆:161
積分:268
註冊:2002-11-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2002-12-26 05:58:08 IP:61.16.xxx.xxx 未訂閱
建議你用 TDatabase 元件作統一的 Login 動作 (如果你所有的 Query 都指向同一個 Database). 這樣就不會有你說的問題了
shpeng
初階會員


發表:6
回覆:67
積分:49
註冊:2002-12-21

發送簡訊給我
#3 引用回覆 回覆 發表時間:2002-12-26 08:24:34 IP:61.219.xxx.xxx 未訂閱
function READ_ST (NO :STRING):STRING; VAR Query1 : TQUERY;ConnectionDb:TDataBase; //<----加 begin TRY ConnectionDb := TDataBase.Create(APPLICATION.Owner);//<----加 ConnectionDb.AliasName := 'DB1'; //<----加 ConnectionDb.Database := 'xDb1';//<----加 ConnectionDb.Database.LoginPrompt := False;//<----加 ConnectionDb.open; //<----加 Query1 := TQUERY.Create(APPLICATION.Owner); Query1.DatabaseName := 'xDB1'; //<----改 Query1.SQL.Clear; Query1.SQL.Add('SELECT * FROM ST'); QQuery1.SQL.Add('WHERE TENO = ''' NO ''''); Query1.Close; Query1.Open; IF Query1.Eof = FALSE THEN RESULT := Query1.FieldByName('LVE').AsString; IF Query1.Eof = TRUE THEN RESULT := ''; FINALLY Query1.Free; ConnectionDb.Free;;//<----加 END; end; [舉一反三]是成功設計師的特質
------
==取之於斯,用之於斯==
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2002-12-26 09:36:21 IP:61.219.xxx.xxx 未訂閱
如前兩位所言, Create TDatabase 但讓該 TDatabase.KeepConnection Property -> True 較妥當. /* 使用中文很辛苦,中華男兒當自強 */
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-01-26 03:57:35 IP:211.74.xxx.xxx 未訂閱
再請問一次 function UNSETREAD (UNNAME, ID :STRING):STRING; VAR ConnectionDb:TDataBase; QDBCHECK : TQUERY; begin TRY //ConnectionDb := TDataBase.Create(APPLICATION.Owner);//<----加(test1) //ConnectionDb.AliasName := 'db1'; //<----加(test1) //ConnectionDb.DatabaseName := 'db1';//<----加(test1) //ConnectionDb.LoginPrompt := False;//<----加(test1) //ConnectionDb.open; //<----加 //TDatabase.KeepConnection := True; //<----加(test3) QDBCHECK := TQUERY.Create(APPLICATION.Owner); QDBCHECK.DatabaseName := 'db1'; //MAIN //QDBCHECK.Database.LoginPrompt := False; //<----加(test2) //QDBCHECK.Database.KeepConnection := True; //<----加(test2) 我加了上述方式,均會發生錯誤,如不加又會出現LoginPrompt,但可正確使用 我的資料庫適用ODBC連結
hagar
版主


發表:143
回覆:4056
積分:4445
註冊:2002-04-14

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-01-26 08:40:34 IP:202.39.xxx.xxx 未訂閱
ConnectionDb.AliasName := 'db1'; ConnectionDb.DatabaseName := 'db1'; 如上兩行, AliasName 與 DatabaseName 的值都相同 把 DatabaseName 的值改成跟 AliasName 不一樣試試 另外您說的會發生錯誤, 是什麼錯誤? 錯誤訊息為何? -- 將進酒 杯莫停 與君歌一曲 請君為我傾耳聽
Paicaso
中階會員


發表:140
回覆:124
積分:52
註冊:2002-09-04

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-01-26 14:45:19 IP:61.59.xxx.xxx 未訂閱
我試過把 DatabaseName 的值改成跟 AliasName 不一樣 但結果均一樣 後來我將所需之DataBase全部在部在一開始用DateBase元件加入 並將LoginPrompt 設為 False與KeepConnection 設為 True 如此即可,這樣的方法對嗎
FrederickPau
資深會員


發表:4
回覆:161
積分:268
註冊:2002-11-04

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-01-26 22:14:16 IP:61.228.xxx.xxx 未訂閱
AliasName 是指在 BDE (或 ODBC) 定的名稱 DataBaseName 你可以隨便打就可以了, 之後的 TTable 或 TQuery 元件 ... 資料庫的名稱你用 DataBaseName 就可以了 這兩個是不能一樣的
系統時間:2024-06-02 1:29:24
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!