|
Thanks :)
Have you tried running the Hibernate test suites to
see how much functionality can be supported on Access?
----- Original Message -----
Sent: Saturday, December 14, 2002 2:01
AM
Subject: [Hibernate] microsoft access
dialect
hi, I
have began developing a dialect for working with
Microsoft
Access
using
InfoZoom JDBC driver.
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:
- ## MSAccess
- hibernate.dialect cirrus.hibernate.sql.MSAccessDialect
- hibernate.connection.driver_class com.inzoom.jdbcado.Driver
- hibernate.connection.url
jdbc:izmado:IzmDllPath=E:\\cvs_out\\teamwork\\html\\WEB-INF\\lib\\IzmJniAdo.dll;Provider=MSDASQL;Driver={Microsoft
Access Driver (*.mdb)};Dbq=e:\\cvs_out\\teamwork\\data\\teamwork_ol.mdb
- hibernate.connection.username admin
- hibernate.connection.password
here if you have a licensed
version you will add in the url also
IzmRoyaltyFree=[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" );
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; } 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
connection.close();
I will test it more in the near future. bye,
peterpumpkin
|