001package com.avaje.ebean.config.dbplatform;
002
003import com.avaje.ebean.config.PersistBatch;
004
005import java.sql.Types;
006
007/**
008 * Microsoft SQL Server 2000 specific platform.
009 * <p>
010 * <ul>
011 * <li>supportsGetGeneratedKeys = false</li>
012 * <li>Use select @@IDENTITY to return the generated Id instead</li>
013 * <li>Uses LIMIT OFFSET clause</li>
014 * <li>Uses [ & ] for quoted identifiers</li>
015 * </ul>
016 * </p>
017 */
018public class MsSqlServer2000Platform extends DatabasePlatform {
019
020  public MsSqlServer2000Platform() {
021    super();
022    this.name = "mssqlserver2000";
023    this.persistBatchOnCascade = PersistBatch.NONE;
024    this.dbIdentity.setIdType(IdType.IDENTITY);
025    this.dbIdentity.setSupportsGetGeneratedKeys(false);
026    this.dbIdentity.setSelectLastInsertedIdTemplate("select @@IDENTITY as X");
027    this.dbIdentity.setSupportsIdentity(true);
028
029    this.openQuote = "[";
030    this.closeQuote = "]";
031
032    dbTypeMap.put(Types.BOOLEAN, new DbType("bit default 0"));
033
034    dbTypeMap.put(Types.BIGINT, new DbType("numeric", 19));
035    dbTypeMap.put(Types.REAL, new DbType("float(16)"));
036    dbTypeMap.put(Types.DOUBLE, new DbType("float(32)"));
037    dbTypeMap.put(Types.TINYINT, new DbType("smallint"));
038    dbTypeMap.put(Types.DECIMAL, new DbType("numeric", 28));
039
040    dbTypeMap.put(Types.BLOB, new DbType("image"));
041    dbTypeMap.put(Types.CLOB, new DbType("text"));
042    dbTypeMap.put(Types.LONGVARBINARY, new DbType("image"));
043    dbTypeMap.put(Types.LONGVARCHAR, new DbType("text"));
044
045    dbTypeMap.put(Types.DATE, new DbType("datetime"));
046    dbTypeMap.put(Types.TIME, new DbType("datetime"));
047    dbTypeMap.put(Types.TIMESTAMP, new DbType("datetime"));
048
049  }
050
051}