From: Gavin K. <ga...@ap...> - 2002-12-14 06:54:13
|
Thanks :) Have you tried running the Hibernate test suites to see how much = functionality can be supported on Access? ----- Original Message -----=20 From: Pietro Polsinelli=20 To: hib...@li...=20 Sent: Saturday, December 14, 2002 2:01 AM Subject: [Hibernate] microsoft access dialect hi, I have began developing a dialect for working with=20 Microsoft Access using=20 InfoZoom JDBC driver.=20 I hope it will be of some use. I do NOT claim that this will work in = general; it just works for my current applications. = _________________________________________________________________________= __ in hibernate.properties I added:=20 ## MSAccess hibernate.dialect cirrus.hibernate.sql.MSAccessDialect=20 hibernate.connection.driver_class com.inzoom.jdbcado.Driver=20 hibernate.connection.url = jdbc:izmado:IzmDllPath=3DE:\\cvs_out\\teamwork\\html\\WEB-INF\\lib\\IzmJn= iAdo.dll;Provider=3DMSDASQL;Driver=3D{Microsoft Access Driver = (*.mdb)};Dbq=3De:\\cvs_out\\teamwork\\data\\teamwork_ol.mdb=20 hibernate.connection.username admin=20 hibernate.connection.password=20 here if you have a licensed version you will add in the url also=20 =20 IzmRoyaltyFree=3D[license number] actually in my projects infozoom driver works also with hibernate on = sql server. = _________________________________________________________________________= __ the dialect class public class MSAccessDialect extends Dialect { public MSAccessDialect() { super(); register( Types.BIT, "BIT" );=20 register( Types.BIGINT, "INTEGER" ); register( Types.SMALLINT, "SMALLINT" ); register( Types.TINYINT, "TINYINT" ); register( Types.INTEGER, "INTEGER" ); register( Types.CHAR, "CHARACTER(1)" ); register( Types.VARCHAR, "VARCHAR($l)" ); register( Types.FLOAT, "FLOAT" ); register( Types.DOUBLE, "DOUBLE PRECISION" ); register( Types.DATE, "DATETIME" ); register( Types.TIME, "DATETIME" ); register( Types.TIMESTAMP, "DATETIME" ); register( Types.VARBINARY, "VARBINARY($l)" ); register( Types.NUMERIC, "DECIMAL(19,$l)" ); = getDefaultProperties().setProperty(Environment.OUTER_JOIN, "false"); = getDefaultProperties().setProperty(Environment.STATEMENT_BATCH_SIZE, = NO_BATCH); } public String getAddColumnString() { return "add"; } public String getNullColumnString() { return " null"; } public boolean qualifyIndexName() { return false; } =20 public boolean supportsForUpdate() { return false; } public boolean supportsIdentityColumns() { return true; } public String getIdentitySelectString() { return "select @@identity"; } public String getIdentityColumnString() { return "IDENTITY NOT NULL"; } public String getNoColumnsInsertString() { return "DEFAULT VALUES"; } } - in order to make SchemaUpdater work I had to add in method = "execute": connection.commit(); before=20 connection.close();=20 I will test it more in the near future. bye, peterpumpkin=20 |