MSSQLTypes.php

Go to the documentation of this file.
00001 <?php 00002 00003 /* 00004 * $Id: MSSQLTypes.php,v 1.1 2004/05/02 21:27:01 micha 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 00033 class MSSQLTypes extends CreoleTypes 00034 { 00036 var $typeMap = null; 00037 00039 var $reverseMap; 00040 00044 function getType($mssqlType) 00045 { 00046 $self =& MSSQLTypes::getInstance(); 00047 00048 $t = strtolower($mssqlType); 00049 if (isset($self->typeMap[$t])) { 00050 return $self->typeMap[$t]; 00051 } else { 00052 return CreoleTypes::OTHER(); 00053 } 00054 } 00055 00059 function getNativeType($creoleType) 00060 { 00061 $self =& MSSQLTypes::getInstance(); 00062 00063 if ($self->reverseMap === null) { 00064 $self->reverseMap = array_flip($self->typeMap); 00065 } 00066 return @$self->reverseMap[$creoleType]; 00067 } 00068 00069 /* 00070 * @access private 00071 */ 00072 function & getInstance() 00073 { 00074 static $instance; 00075 00076 if ($instance === null) 00077 { 00078 $instance = new MSSQLTypes(); 00079 $instance->typeMap = array 00080 ( 00081 "binary" => CreoleTypes::BINARY(), 00082 "bit" => CreoleTypes::BOOLEAN(), 00083 "char" => CreoleTypes::CHAR(), 00084 "datetime" => CreoleTypes::TIMESTAMP(), 00085 "decimal() identity" => CreoleTypes::DECIMAL(), 00086 "decimal" => CreoleTypes::DECIMAL(), 00087 "image" => CreoleTypes::LONGVARBINARY(), 00088 "int" => CreoleTypes::INTEGER(), 00089 "int identity" => CreoleTypes::INTEGER(), 00090 "integer" => CreoleTypes::INTEGER(), 00091 "money" => CreoleTypes::DECIMAL(), 00092 "nchar" => CreoleTypes::CHAR(), 00093 "ntext" => CreoleTypes::LONGVARCHAR(), 00094 "numeric() identity" => CreoleTypes::NUMERIC(), 00095 "numeric" => CreoleTypes::NUMERIC(), 00096 "nvarchar" => CreoleTypes::VARCHAR(), 00097 "real" => CreoleTypes::REAL(), 00098 "smalldatetime" => CreoleTypes::TIMESTAMP(), 00099 "smallint" => CreoleTypes::SMALLINT(), 00100 "smallint identity" => CreoleTypes::SMALLINT(), 00101 "smallmoney" => CreoleTypes::DECIMAL(), 00102 "sysname" => CreoleTypes::VARCHAR(), 00103 "text" => CreoleTypes::LONGVARCHAR(), 00104 "timestamp" => CreoleTypes::BINARY(), 00105 "tinyint identity" => CreoleTypes::TINYINT(), 00106 "tinyint" => CreoleTypes::TINYINT(), 00107 "uniqueidentifier" => CreoleTypes::CHAR(), 00108 "varbinary" => CreoleTypes::VARBINARY(), 00109 "varchar" => CreoleTypes::VARCHAR(), 00110 "uniqueidentifier" => CreoleTypes::CHAR(), 00111 // SQL Server 2000 only 00112 "bigint identity" => CreoleTypes::BIGINT(), 00113 "bigint" => CreoleTypes::BIGINT(), 00114 "sql_variant" => CreoleTypes::VARCHAR(), 00115 ); 00116 } 00117 00118 return $instance; 00119 } 00120 00121 }

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


Copyright © 2004 Hans Lellelid  
Creole[php4] CVS