[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 メーリングリストの案内