[seasar-dotnet:580] Re: MDB 利用時にオートナンバーの列に正しく Insert できない

Kazuya Sugimoto [E-MAIL ADDRESS DELETED]
2007年 8月 20日 (月) 17:04:36 JST


近藤さん、こんにちは。

杉本です。

すいません。S2Dao.NETのバグですね。
近藤さんの修正で間違いありません。

次回リリース時に対応します。



07/08/20 に Atsushi   Kondouさんは書きました:
> 近藤と申します。
>
> MDBをデータベースとしてS2Dao.Netを利用しています。
> オートナンバーの列を主キーとしたテーブルへのInsertを実行した際以下のエラーが出ます。
>
> [ESSR0007]_sqlはnullあるいは空であってはいけません
>
> エンティティーの対象列のプロパティは、以下のように設定しています
> [ID(IDType.IDENTITY,KindOfDbms.MDB)]
> public long? Id{
>        get{
>                return id;
>        }
>        set{
>                id = value;
>        }
> }
>
> IDは、NULLを渡しているのを確認しています
>
> ソースをダウンロードしていろいろ調べてみたのですが、
> Seasar.Dao.Id::IdentityIdentifierGenerator→SetIdentifierのメソッド内の
> ExecuteSqlにnullを渡しているのがエラーの原因のようでした。
>  object value = ExecuteSql(ds, this.Dbms.IdentitySelectString, null);
>  this.Dbms.IdentitySelectString ← null
>
> Seasar.Dao.Dbms::MDBにIdentitySelectStringのメソッドがなかったため
> 以下を追加した所、正常にInsert出来、追加行のIDも拾ってきたのを確認しました。
>
> public override string IdentitySelectString
> {
>    get { return "select @@identity"; }
> }
>
> 他の回避策があるのでしたら教えて下さい。
> もし、私の修正が正しいのでしたら、対応していただければ安心します。
>
> どうぞよろしくお願いします。
>
> _______________________________________________
> seasar-dotnet mailing list
> [E-MAIL ADDRESS DELETED]
> https://ml.seasar.org/mailman/listinfo/seasar-dotnet
>


-- 
Kazuya Sugimoto
Microsoft MVP Visual Developer - Solutions Architect
http://d.hatena.ne.jp/sugimotokazuya/


seasar-dotnet メーリングリストの案内