package ro.nextreports.engine.querybuilder.sql.dialect;
import java.sql.Types;
import ro.nextreports.engine.util.ProcUtil;
// At the foundations this driver uses hsqldb (see getSqlChecker)
// Info: http://ucanaccess.sourceforge.net/site.html
public class MSAccessDialect extends AbstractDialect {
public static final String DRIVER_CLASS = "net.ucanaccess.jdbc.UcanaccessDriver";
public MSAccessDialect() {
super();
registerColumnType("binary", Types.BLOB);
registerColumnType("bigbinary", Types.BLOB);
registerColumnType("bit", Types.BOOLEAN);
registerColumnType("boolean", Types.BOOLEAN);
registerColumnType("counter", Types.INTEGER);
registerColumnType("money", Types.DECIMAL);
registerColumnType("datetime", Types.TIMESTAMP);
registerColumnType("uniqueidentifier", Types.VARCHAR);
registerColumnType("long binary", Types.BLOB);
registerColumnType("long text", Types.LONGVARCHAR);
registerColumnType("memo", Types.LONGVARCHAR);
registerColumnType("numeric", Types.NUMERIC);
registerColumnType("number", Types.NUMERIC);
registerColumnType("ole", Types.BLOB);
registerColumnType("text", Types.VARCHAR);
registerColumnType("varbinary", Types.BLOB);
registerColumnType("integer", Types.INTEGER);
registerColumnType("tinyint", Types.INTEGER);
registerColumnType("smallint", Types.INTEGER);
registerColumnType("decimal", Types.DECIMAL);
registerColumnType("real", Types.DOUBLE);
registerColumnType("float", Types.FLOAT);
registerColumnType("timestamp", Types.TIMESTAMP);
registerColumnType("char", Types.CHAR);
registerColumnType("nchar", Types.CHAR);
registerColumnType("varchar", Types.VARCHAR);
registerColumnType("nvarchar", Types.VARCHAR);
registerColumnType("varchar_ignorecase", Types.VARCHAR);
}
public String getCurrentDate() throws DialectException {
return "Date()";
}
public String getCurrentTimestamp() throws DialectException {
return "Now()";
}
public String getCurrentTime() throws DialectException {
return "Now()";
}
public String getCurrentDateSelect() {
return "select Date()";
}
public String getRecycleBinTablePrefix() {
return null;
}
public String getCursorSqlTypeName() {
return ProcUtil.REF_CURSOR;
}
public int getCursorSqlType() {
return Types.OTHER;
}
public String getSqlChecker() {
return "VALUES (CURRENT_TIMESTAMP)";
}
}