MSSQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: MSSQLTypes.php,v 1.7 2004/04/09 19:16:04 hlellelid Exp $ 00005 * 00006 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 00007 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 00008 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 00009 * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 00010 * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 00011 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 00012 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 00013 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 00014 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 00015 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00016 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00017 * 00018 * This software consists of voluntary contributions made by many individuals 00019 * and is licensed under the LGPL. For more information please see 00020 * <http://creole.phpdb.org>. 00021 */ 00022 00023 require_once 'creole/CreoleTypes.php'; 00024 00032 class MSSQLTypes extends CreoleTypes { 00033 00035 private static $typeMap = array ( 00036 "binary" => CreoleTypes::BINARY, 00037 "bit" => CreoleTypes::BOOLEAN, 00038 "char" => CreoleTypes::CHAR, 00039 "datetime" => CreoleTypes::TIMESTAMP, 00040 "decimal() identity" => CreoleTypes::DECIMAL, 00041 "decimal" => CreoleTypes::DECIMAL, 00042 "image" => CreoleTypes::LONGVARBINARY, 00043 "int" => CreoleTypes::INTEGER, 00044 "int identity" => CreoleTypes::INTEGER, 00045 "integer" => CreoleTypes::INTEGER, 00046 "money" => CreoleTypes::DECIMAL, 00047 "nchar" => CreoleTypes::CHAR, 00048 "ntext" => CreoleTypes::LONGVARCHAR, 00049 "numeric() identity" => CreoleTypes::NUMERIC, 00050 "numeric" => CreoleTypes::NUMERIC, 00051 "nvarchar" => CreoleTypes::VARCHAR, 00052 "real" => CreoleTypes::REAL, 00053 "smalldatetime" => CreoleTypes::TIMESTAMP, 00054 "smallint" => CreoleTypes::SMALLINT, 00055 "smallint identity" => CreoleTypes::SMALLINT, 00056 "smallmoney" => CreoleTypes::DECIMAL, 00057 "sysname" => CreoleTypes::VARCHAR, 00058 "text" => CreoleTypes::LONGVARCHAR, 00059 "timestamp" => CreoleTypes::BINARY, 00060 "tinyint identity" => CreoleTypes::TINYINT, 00061 "tinyint" => CreoleTypes::TINYINT, 00062 "uniqueidentifier" => CreoleTypes::CHAR, 00063 "varbinary" => CreoleTypes::VARBINARY, 00064 "varchar" => CreoleTypes::VARCHAR, 00065 "uniqueidentifier" => CreoleTypes::CHAR, 00066 // SQL Server 2000 only 00067 "bigint identity" => CreoleTypes::BIGINT, 00068 "bigint" => CreoleTypes::BIGINT, 00069 "sql_variant" => CreoleTypes::VARCHAR, 00070 ); 00071 00073 private static $reverseMap = null; 00074 00075 public static function getType($mssqlType) 00076 { 00077 $t = strtolower($mssqlType); 00078 if (isset(self::$typeMap[$t])) { 00079 return self::$typeMap[$t]; 00080 } else { 00081 return CreoleTypes::OTHER; 00082 } 00083 } 00084 00085 public static function getNativeType($creoleType) 00086 { 00087 if (self::$reverseMap === null) { 00088 self::$reverseMap = array_flip(self::$typeMap); 00089 } 00090 return @self::$reverseMap[$creoleType]; 00091 } 00092 00093 }

This file is part of the Creole[php5] library.


Copyright © 2004 Hans Lellelid  
Creole[php5] CVS