Have you been to this URL?
http://wiki.nhibernate.org/display/NH/Microsoft+Access?showAttachments=true#attachments
I was able to add it into the hibernate source, and compile it. I had to make some changes though.
For instance, the constructor ended up being this:
Code:
public MsAccess2000Dialect() : base()
{
RegisterColumnType( DbType.AnsiStringFixedLength, "CHAR(255)" );
RegisterColumnType( DbType.AnsiStringFixedLength, 255,"CHAR($1)" );
RegisterColumnType( DbType.AnsiStringFixedLength, 8000, "LONGTEXT" );
RegisterColumnType( DbType.AnsiString, "VARCHAR(255)" );
RegisterColumnType( DbType.AnsiString, 255,"VARCHAR($1)" );
RegisterColumnType( DbType.AnsiString, 2147483647, "LONGTEXT" );
RegisterColumnType( DbType.Binary, "IMAGE" );
RegisterColumnType( DbType.Boolean, "BIT" );
RegisterColumnType( DbType.Byte, "TINYINT" );
RegisterColumnType( DbType.Currency, "MONEY" );
RegisterColumnType( DbType.Date, "DATETIME" );
RegisterColumnType( DbType.DateTime, "DATETIME" );
RegisterColumnType( DbType.Decimal, "NUMERIC" );
RegisterColumnType( DbType.Double, "DOUBLE" ); //synonym for FLOAT(53)
RegisterColumnType( DbType.Guid, "UNIQUEIDENTIFIER" );
RegisterColumnType( DbType.Int16, "INT" );
RegisterColumnType( DbType.Int32, "LONG" );
RegisterColumnType( DbType.Int64, "NUMERIC" );
RegisterColumnType( DbType.Single, "REAL" ); //synonym for FLOAT(24)
RegisterColumnType( DbType.StringFixedLength, "CHAR(255)" );
RegisterColumnType( DbType.StringFixedLength, 255,"CHAR($1)" );
RegisterColumnType( DbType.StringFixedLength, 4000, "LONGTEXT" );
RegisterColumnType( DbType.String, "VARCHAR(255)" );
RegisterColumnType( DbType.String, 255,"VARCHAR($1)" );
RegisterColumnType( DbType.String, 1073741823, "LONGTEXT" );
RegisterColumnType( DbType.Time, "DATETIME" );
DefaultProperties[ Environment.UseOuterJoin ] = "true";
DefaultProperties[ Environment.ConnectionDriver ] = "NHibernate.Driver.OleDbDriver";
DefaultProperties[ Environment.PrepareSql ] = "false";
}
I also modified some of the base class's variables from private to protected.
It worked fine for me. However, I decided not to use it because it isn't supported and it looked like I would have to worry about avoiding certain situations using joins.