[seasar-dotnet:579] MDB 利用時にオートナンバーの列に正しく Insert できない
    Atsushi   Kondou
    [E-MAIL ADDRESS DELETED]
       
    2007年 8月 20日 (月) 15:32:23 JST
    
    
  
近藤と申します。
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 メーリングリストの案内