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

資料庫的連結問題...

尚未結案
Theodore
一般會員


發表:11
回覆:10
積分:4
註冊:2003-05-15

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-20 17:20:19 IP:211.21.xxx.xxx 未訂閱
小弟目前在資料庫連結上有點問題, 情形是這樣的.   程式是以AP形式去撰寫, 啟動後會去做資料庫連結(資料庫在別台伺服器). 若一開始是可以連的, 程式都沒有問題. 但是, 若資料庫伺服器重啟動, AP 沒跟著重啟動的話, 程式在資料庫動作部份都會發生問題. 我是用ADOTable 和 ADOQuery 透過 ODBC 去連 MSSQL    錯誤訊息大致是 [Microsoft][ODBC][Shared Memory]ConnectionWrite() ...    該怎麼做才能像 ASP 一樣, 資料庫的重啟動, AP 的做法都沒有變更一樣能跑呢?  如果有人的程式可以連結
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-20 21:22:28 IP:218.161.xxx.xxx 未訂閱
可以利用try-except-end去處理,在except-end之間,去檢查錯誤的訊息是否是因為connection斷掉所導致的,如果是的話,試著再重新呼叫的TADOConnection.Connected:=True,再出現錯誤,那就是無法連接資料庫,就show出錯誤訊息給user知道.code大概如下:
  try
    ADOQuery1.Active:=True;
  except
    on E:Exception do
    begin
      if pos('[Microsoft][ODBC][Shared Memory]ConnectionWrite',E.Message)>0 then
      begin
        try
          ADOConnection.Connected:=False;
          ADOConnection.Connected:=True;
        except
          on E:Exception do
          begin
            raise Exception.Create('連接資料庫失敗,錯誤訊息如下:'#13 E.Message);
          end;
        end;
        ADOQuery1.Active:=True;
      end
      else
        raise Exception.Create('讀取資料失敗,錯誤原因如下:'#13 E.Message);
    end;
  end;
這樣了嗎?
引言: 小弟目前在資料庫連結上有點問題, 情形是這樣的. 程式是以AP形式去撰寫, 啟動後會去做資料庫連結(資料庫在別台伺服器). 若一開始是可以連的, 程式都沒有問題. 但是, 若資料庫伺服器重啟動, AP 沒跟著重啟動的話, 程式在資料庫動作部份都會發生問題. 我是用ADOTable 和 ADOQuery 透過 ODBC 去連 MSSQL 錯誤訊息大致是 [Microsoft][ODBC][Shared Memory]ConnectionWrite() ... 該怎麼做才能像 ASP 一樣, 資料庫的重啟動, AP 的做法都沒有變更一樣能跑呢? 如果有人的程式可以連結>< face="Verdana, Arial, Helvetica">
系統時間:2024-06-29 16:35:39
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!