⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mssql.php

📁 开源邮件管理系统
💻 PHP
📖 第 1 页 / 共 2 页
字号:
<?php// vim: set et ts=4 sw=4 fdm=marker:// +----------------------------------------------------------------------+// | PHP versions 4 and 5                                                 |// +----------------------------------------------------------------------+// | Copyright (c) 1998-2007 Manuel Lemos, Tomas V.V.Cox,                 |// | Stig. S. Bakken, Lukas Smith                                         |// | All rights reserved.                                                 |// +----------------------------------------------------------------------+// | MDB2 is a merge of PEAR DB and Metabases that provides a unified DB  |// | API as well as database abstraction for PHP applications.            |// | This LICENSE is in the BSD license style.                            |// |                                                                      |// | Redistribution and use in source and binary forms, with or without   |// | modification, are permitted provided that the following conditions   |// | are met:                                                             |// |                                                                      |// | Redistributions of source code must retain the above copyright       |// | notice, this list of conditions and the following disclaimer.        |// |                                                                      |// | Redistributions in binary form must reproduce the above copyright    |// | notice, this list of conditions and the following disclaimer in the  |// | documentation and/or other materials provided with the distribution. |// |                                                                      |// | Neither the name of Manuel Lemos, Tomas V.V.Cox, Stig. S. Bakken,    |// | Lukas Smith nor the names of his contributors may be used to endorse |// | or promote products derived from this software without specific prior|// | written permission.                                                  |// |                                                                      |// | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS  |// | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT    |// | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS    |// | FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE      |// | REGENTS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,          |// | INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, |// | BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS|// |  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED  |// | AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT          |// | LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY|// | WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE          |// | POSSIBILITY OF SUCH DAMAGE.                                          |// +----------------------------------------------------------------------+// | Authors: Lukas Smith <smith@pooteeweet.org>                          |// |          Daniel Convissor <danielc@php.net>                          |// +----------------------------------------------------------------------+//// $Id: mssql.php,v 1.65 2008/02/19 14:54:17 afz Exp $//require_once 'MDB2/Driver/Datatype/Common.php';/** * MDB2 MS SQL driver * * @package MDB2 * @category Database * @author  Lukas Smith <smith@pooteeweet.org> */class MDB2_Driver_Datatype_mssql extends MDB2_Driver_Datatype_Common{    // {{{ _baseConvertResult()    /**     * general type conversion method     *     * @param mixed   $value refernce to a value to be converted     * @param string  $type  specifies which type to convert to     * @param boolean $rtrim [optional] when TRUE [default], apply rtrim() to text     * @return object a MDB2 error on failure     * @access protected     */    function _baseConvertResult($value, $type, $rtrim = true)    {        if (is_null($value)) {            return null;        }        switch ($type) {        case 'boolean':            return $value == '1';        case 'date':            if (strlen($value) > 10) {                $value = substr($value,0,10);            }            return $value;        case 'time':            if (strlen($value) > 8) {                $value = substr($value,11,8);            }            return $value;        }        return parent::_baseConvertResult($value, $type, $rtrim);    }    // }}}    // {{{ _getCollationFieldDeclaration()    /**     * Obtain DBMS specific SQL code portion needed to set the COLLATION     * of a field declaration to be used in statements like CREATE TABLE.     *     * @param string $collation name of the collation     *     * @return string DBMS specific SQL code portion needed to set the COLLATION     *                of a field declaration.     */    function _getCollationFieldDeclaration($collation)    {        return 'COLLATE '.$collation;    }    // }}}    // {{{ getTypeDeclaration()    /**     * Obtain DBMS specific SQL code portion needed to declare an text type     * field to be used in statements like CREATE TABLE.     *     * @param array $field  associative array with the name of the properties     *      of the field being declared as array indexes. Currently, the types     *      of supported field properties are as follows:     *     *      length     *          Integer value that determines the maximum length of the text     *          field. If this argument is missing the field should be     *          declared to have the longest length allowed by the DBMS.     *     *      default     *          Text value to be used as default for this field.     *     *      notnull     *          Boolean flag that indicates whether this field is constrained     *          to not be set to null.     * @return string  DBMS specific SQL code portion that should be used to     *      declare the specified field.     * @access public     */    function getTypeDeclaration($field)    {        $db =& $this->getDBInstance();        if (PEAR::isError($db)) {            return $db;        }        switch ($field['type']) {        case 'text':            $length = !empty($field['length'])                ? $field['length'] : false;            $fixed = !empty($field['fixed']) ? $field['fixed'] : false;            return $fixed ? ($length ? 'CHAR('.$length.')' : 'CHAR('.$db->options['default_text_field_length'].')')                : ($length ? 'VARCHAR('.$length.')' : 'TEXT');        case 'clob':            if (!empty($field['length'])) {                $length = $field['length'];                if ($length <= 8000) {                    return 'VARCHAR('.$length.')';                }             }             return 'TEXT';        case 'blob':            if (!empty($field['length'])) {                $length = $field['length'];                if ($length <= 8000) {                    return "VARBINARY($length)";                }            }            return 'IMAGE';        case 'integer':            return 'INT';        case 'boolean':            return 'BIT';        case 'date':            return 'CHAR ('.strlen('YYYY-MM-DD').')';        case 'time':            return 'CHAR ('.strlen('HH:MM:SS').')';        case 'timestamp':            return 'CHAR ('.strlen('YYYY-MM-DD HH:MM:SS').')';        case 'float':            return 'FLOAT';        case 'decimal':            $length = !empty($field['length']) ? $field['length'] : 18;            $scale = !empty($field['scale']) ? $field['scale'] : $db->options['decimal_places'];            return 'DECIMAL('.$length.','.$scale.')';        }        return '';    }    // }}}    // {{{ _getIntegerDeclaration()    /**     * Obtain DBMS specific SQL code portion needed to declare an integer type     * field to be used in statements like CREATE TABLE.     *     * @param string  $name   name the field to be declared.     * @param string  $field  associative array with the name of the properties     *                        of the field being declared as array indexes.     *                        Currently, the types of supported field     *                        properties are as follows:     *     *                       unsigned     *                        Boolean flag that indicates whether the field     *                        should be declared as unsigned integer if     *                        possible.     *     *                       default     *                        Integer value to be used as default for this     *                        field.     *     *                       notnull     *                        Boolean flag that indicates whether this field is     *                        constrained to not be set to null.     * @return string  DBMS specific SQL code portion that should be used to     *                 declare the specified field.     * @access protected     */    function _getIntegerDeclaration($name, $field)    {        $db =& $this->getDBInstance();

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -