1. 程式人生 > >CityMaker7 開發常見異常記錄

CityMaker7 開發常見異常記錄

一、資料來源連線失敗

異常描述:使用CityMaker Server服務進行查詢或其他操作時,如featureclas.search(null,true),會丟擲如下異常資訊:

捕捉到COMException
[FdeException] Code: -2017; Message: to connect datasource failure; NativeCode: 0;
資料來源連線建立方式:

public IDataSource FdbDataSource(IConnectionInfo connInfo)
{
       IDataSourceFactory dsFac = new DataSourceFactory();
       return dsFac.OpenDataSource(connInfo);
}

問題解決:

經反覆測試和跟蹤發現,使用IDataSource獲取資料來源連線後是不能斷開的,除非要結束整個應用程式。在整個應用程式中都不能呼叫IDataSource.Close()方法斷開連線,即使通過IConnectionInfo重新構建連線也是行不通的,仍然會丟擲相應異常。

在使用後通過Marshal.RealseComObject方法釋放IDataSource物件是不會引發異常的,只要不呼叫Close就ok了。

if (ds != null)
{
      Marshal.ReleaseComObject(ds);
      ds = null;
}