当前位置: 首页>>代码示例>>PHP>>正文


PHP DBManager::oneColumnSQLRep方法代码示例

本文整理汇总了PHP中DBManager::oneColumnSQLRep方法的典型用法代码示例。如果您正苦于以下问题:PHP DBManager::oneColumnSQLRep方法的具体用法?PHP DBManager::oneColumnSQLRep怎么用?PHP DBManager::oneColumnSQLRep使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在DBManager的用法示例。


在下文中一共展示了DBManager::oneColumnSQLRep方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: oneColumnSQLRep

 /**
  * @see DBManager::oneColumnSQLRep()
  */
 protected function oneColumnSQLRep($fieldDef, $ignoreRequired = false, $table = '', $return_as_array = false)
 {
     if (!empty($fieldDef['len'])) {
         // Variable-length can be a value from 1 through 8,000 or 4,000 for (n).
         // Max indicates that the maximum storage size is 2^31-1 bytes.
         // The storage size is the actual length of data entered + 2 bytes.
         // @link: http://msdn.microsoft.com/en-us/library/ff848814.aspx
         $colType = $this->getColumnType($this->getFieldType($fieldDef));
         if ($parts = $this->getTypeParts($colType)) {
             $colType = $parts['baseType'];
         }
         switch (strtolower($colType)) {
             case 'char':
             case 'binary':
                 if (8000 < $fieldDef['len']) {
                     $fieldDef['len'] = 8000;
                 }
                 break;
             case 'varchar':
             case 'varbinary':
                 if (8000 < $fieldDef['len']) {
                     $fieldDef['len'] = 'max';
                 }
                 break;
             case 'nchar':
                 if (4000 < $fieldDef['len']) {
                     $fieldDef['len'] = 4000;
                 }
                 break;
             case 'nvarchar':
                 if (4000 < $fieldDef['len']) {
                     $fieldDef['len'] = 'max';
                 }
                 break;
         }
     }
     //Bug 25814
     if (isset($fieldDef['name'])) {
         $colType = $this->getFieldType($fieldDef);
         if (stristr($this->getFieldType($fieldDef), 'decimal') && isset($fieldDef['len'])) {
             $fieldDef['len'] = min($fieldDef['len'], 38);
         }
         //bug: 39690 float(8) is interpreted as real and this generates a diff when doing repair
         if (stristr($colType, 'float') && isset($fieldDef['len']) && $fieldDef['len'] == 8) {
             unset($fieldDef['len']);
         }
     }
     // always return as array for post-processing
     $ref = parent::oneColumnSQLRep($fieldDef, $ignoreRequired, $table, true);
     // Bug 24307 - Don't add precision for float fields.
     if (stristr($ref['colType'], 'float')) {
         $ref['colType'] = preg_replace('/(,\\d+)/', '', $ref['colType']);
     }
     if ($return_as_array) {
         return $ref;
     } else {
         return "{$ref['name']} {$ref['colType']} {$ref['default']} {$ref['required']} {$ref['auto_increment']}";
     }
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:62,代码来源:MssqlManager.php

示例2: oneColumnSQLRep

 /**
  * @see DBManager::oneColumnSQLRep()
  */
 protected function oneColumnSQLRep($fieldDef, $ignoreRequired = false, $table = '', $return_as_array = false)
 {
     // always return as array for post-processing
     $ref = parent::oneColumnSQLRep($fieldDef, $ignoreRequired, $table, true);
     if ($ref['colType'] == 'int' && !empty($fieldDef['len'])) {
         $ref['colType'] .= "(" . $fieldDef['len'] . ")";
     }
     // bug 22338 - don't set a default value on text or blob fields
     if (isset($ref['default']) && in_array($ref['colBaseType'], array('text', 'blob', 'longtext', 'longblob'))) {
         $ref['default'] = '';
     }
     if ($return_as_array) {
         return $ref;
     } else {
         return "{$ref['name']} {$ref['colType']} {$ref['default']} {$ref['required']} {$ref['auto_increment']}";
     }
 }
开发者ID:delkyd,项目名称:sugarcrm_dev,代码行数:20,代码来源:MysqlManager.php

示例3: oneColumnSQLRep

 protected function oneColumnSQLRep($fieldDef, $ignoreRequired = false, $table = '', $return_as_array = false)
 {
     if (isset($fieldDef['name'])) {
         if (stristr($this->getFieldType($fieldDef), 'decimal') && isset($fieldDef['len'])) {
             $fieldDef['len'] = min($fieldDef['len'], 31);
             // DB2 max precision is 31 for LUW, may be different for other OSs
         }
     }
     //May need to add primary key and sequence stuff here
     $ref = parent::oneColumnSQLRep($fieldDef, $ignoreRequired, $table, true);
     $matches = array();
     if (!empty($fieldDef['len']) && preg_match('/^decimal(\\((?P<len>\\d*),*(?P<prec>\\d*)\\))?$/i', $ref['colType'], $matches)) {
         // Overriding len and precision for decimals as the current DBManager class doesn't handle decimal as both regular type and dbtype well
         //            if(strpos($fieldDef['len'], ',') === false)
         //            {
         //                $numspec = array($fieldDef['len']); // We are ignoring the length if it existed since we have one that comes from the vardefs
         //                $numspec []= !empty($fieldDef['precision']) ? $fieldDef['precision'] : $matches['prec']; // Use the vardef precision if it exists otherwise use the one that was already present
         //                $ref['colType'] = 'decimal('.implode(',',$numspec).')'; // Reconstuct type based on new values
         //            } else {
         $numspec = array($fieldDef['len']);
         // We are ignoring the length if it existed since we have one that comes from the vardefs
         if (!empty($fieldDef['precision']) && !strpos($fieldDef['len'], ',')) {
             $numspec[] = $fieldDef['precision'];
         }
         // Use the vardef precision if it exists and wasn't specified in the length
         $ref['colType'] = 'decimal(' . implode(',', $numspec) . ')';
         //            }
     }
     if (!empty($ref['default']) && in_array($ref['colBaseType'], array('integer', 'smallint', 'bigint', 'double', 'decimal'))) {
         $ref['default'] = str_replace(array("'", "\""), "", $ref['default']);
         // Stripping quotes
     }
     if ($return_as_array) {
         return $ref;
     } else {
         if ($ref['required'] == 'NULL') {
             // DB2 doesn't have NULL definition, only NOT NULL
             $ref['required'] = '';
             // ONLY important when statement is rendered
         }
         return "{$ref['name']} {$ref['colType']} {$ref['default']} {$ref['required']} {$ref['auto_increment']}";
     }
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:43,代码来源:IBMDB2Manager.php

示例4: oneColumnSQLRep

 /**
  * @see DBManager::oneColumnSQLRep()
  */
 protected function oneColumnSQLRep($fieldDef, $ignoreRequired = false, $table = '', $return_as_array = false)
 {
     //Bug 25814
     if (isset($fieldDef['name'])) {
         $colType = $this->getFieldType($fieldDef);
         if (stristr($this->getFieldType($fieldDef), 'decimal') && isset($fieldDef['len'])) {
             $fieldDef['len'] = min($fieldDef['len'], 38);
         }
         //bug: 39690 float(8) is interpreted as real and this generates a diff when doing repair
         if (stristr($colType, 'float') && isset($fieldDef['len']) && $fieldDef['len'] == 8) {
             unset($fieldDef['len']);
         }
     }
     // always return as array for post-processing
     $ref = parent::oneColumnSQLRep($fieldDef, $ignoreRequired, $table, true);
     // Bug 24307 - Don't add precision for float fields.
     if (stristr($ref['colType'], 'float')) {
         $ref['colType'] = preg_replace('/(,\\d+)/', '', $ref['colType']);
     }
     if ($return_as_array) {
         return $ref;
     } else {
         return "{$ref['name']} {$ref['colType']} {$ref['default']} {$ref['required']} {$ref['auto_increment']}";
     }
 }
开发者ID:jgera,项目名称:sugarcrm_dev,代码行数:28,代码来源:MssqlManager.php

示例5: oneColumnSQLRep

 /**
  * @see DBManager::oneColumnSQLRep()
  */
 protected function oneColumnSQLRep($fieldDef, $ignoreRequired = false, $table = '', $return_as_array = false)
 {
     //Bug 25814
     if (isset($fieldDef['name'])) {
         if (stristr($this->getFieldType($fieldDef), 'decimal') && isset($fieldDef['len'])) {
             $fieldDef['len'] = min($fieldDef['len'], 38);
         }
     }
     $type = $this->getFieldType($fieldDef);
     if ($this->isTextType($type) && isset($fieldDef['len'])) {
         unset($fieldDef['len']);
     }
     return parent::oneColumnSQLRep($fieldDef, $ignoreRequired, $table, $return_as_array);
 }
开发者ID:jglaine,项目名称:sugar761-ent,代码行数:17,代码来源:OracleManager.php


注:本文中的DBManager::oneColumnSQLRep方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。