Oracleでの問題

Aug 19, 2011 at 4:16 PM

こんばんは。いつもお世話になってます。

 

さて、一つ問題が発生しました。Oracleでは、ConnectionStringを

User ID=TEST;Password=TEST;Data Source=XE;

で接続し、一度でもクエリを発行すると、信じられないことにConnectionStringが

User ID=TEST;Data Source=XE;

になってしまうようです。

 

これによる弊害は、

type LocalDbImpl(config:IDbConfig, connection:DbConnection) =
  inherit DbImpl(config)
  do 
    if connection.ConnectionString <> config.ConnectionString then
      raise <| DbException(SR.SOMA4026 (connection.ConnectionString, config.ConnectionString))
にて、例外が発生してしまうことです。

 

さて、上記の検証は何のために存在し、上記の検証をしないことはどのような問題を引き起こすのでしょうか?

Aug 20, 2011 at 1:50 AM

フィードバックありがとうございます。

なんとも驚きの挙動です。Oracle...

私の環境でも試してみましたが、同じ現象が起きました。

さて、上記の検証は何のために存在し、上記の検証をしないことはどのような問題を引き起こすのでしょうか?

この検証はユーザーの誤った使い方を未然に防ぐことを目的に存在します。例えば、極端な例ですが、「configではSQL Serverを使うと設定をしているのにも関わらず、利用するConnectionはOracleのもの」という場合は、設定もしくは利用するConnectionのどちらかが間違っていると言えます。

検証しないことによって生じる問題は特にないです。

 

次のバージョンからは、この検証は行わないようにしたいと思います。

Aug 21, 2011 at 4:09 AM

Soma-1.5.0.0で修正しました。

http://soma.codeplex.com/releases/view/72054