cvs: pear /MDB2/MDB2/Driver/Reverse mssql.php
| From: | Lorenzo Alberton | Date: | Sun, 04 Mar 2007 19:56:26 +0000 |
| Subject: | cvs: pear /MDB2/MDB2/Driver/Reverse mssql.php | ||
| Groups: | php.pear.cvs | ||
| Request: | Send a blank email to pear-cvs+get-44947@lists.php.net to get a copy of this message | ||
quipo Sun Mar 4 19:56:26 2007 UTC
Modified files:
/pear/MDB2/MDB2/Driver/Reverse mssql.php
Log:
fixed getTableFieldDefinition()
http://cvs.php.net/viewvc.cgi/pear/MDB2/MDB2/Driver/Reverse/mssql.php?r1=1.35&r2=1.36&diff_format=u
Index: pear/MDB2/MDB2/Driver/Reverse/mssql.php
diff -u pear/MDB2/MDB2/Driver/Reverse/mssql.php:1.35 pear/MDB2/MDB2/Driver/Reverse/mssql.php:1.36
--- pear/MDB2/MDB2/Driver/Reverse/mssql.php:1.35 Sun Mar 4 18:05:58 2007
+++ pear/MDB2/MDB2/Driver/Reverse/mssql.php Sun Mar 4 19:56:26 2007
@@ -2,7 +2,7 @@
// +----------------------------------------------------------------------+
// | PHP versions 4 and 5 |
// +----------------------------------------------------------------------+
-// | Copyright (c) 1998-2006 Manuel Lemos, Tomas V.V.Cox, |
+// | Copyright (c) 1998-2007 Manuel Lemos, Tomas V.V.Cox, |
// | Stig. S. Bakken, Lukas Smith, Frank M. Kromann |
// | All rights reserved. |
// +----------------------------------------------------------------------+
@@ -43,7 +43,7 @@
// | Lorenzo Alberton <l.alberton@quipo.it> |
// +----------------------------------------------------------------------+
//
-// $Id: mssql.php,v 1.35 2007/03/04 18:05:58 quipo Exp $
+// $Id: mssql.php,v 1.36 2007/03/04 19:56:26 quipo Exp $
//
require_once 'MDB2/Driver/Reverse/Common.php';
@@ -82,25 +82,22 @@
$table = $db->quoteIdentifier($table, true);
$fldname = $db->quoteIdentifier($field_name, true);
- $query = "SELECT c.name name,
- c.length,
- c.prec precision,
- c.scale,
- c.isnullable,
- s.text 'default',
- t.name type,
- t.variable,
- o.name tablename
- FROM syscolumns c,
- systypes t,
- sysobjects o,
- syscomments s
- WHERE o.name = '$table'
- AND c.name = '$fldname'
- AND o.id = c.id
- AND c.xtype = t.xtype
- AND c.cdefault = s.id";
-
+ $query = "SELECT t.table_name,
+ c.column_name 'name',
+ c.data_type 'type',
+ c.is_nullable,
+ c.column_default,
+ c.character_maximum_length 'length',
+ c.numeric_precision,
+ c.numeric_scale,
+ c.character_set_name,
+ c.collation_name
+ FROM INFORMATION_SCHEMA.TABLES t,
+ INFORMATION_SCHEMA.COLUMNS c
+ WHERE t.table_name = c.table_name
+ AND t.table_name = '$table'
+ AND c.column_name = '$fldname'
+ ORDER BY t.table_name";
$column = $db->queryRow($query, null, MDB2_FETCHMODE_ASSOC);
if (PEAR::isError($column)) {
return $column;
@@ -119,19 +116,18 @@
} else {
$column = array_change_key_case($column, $db->options['field_case']);
}
-
$mapped_datatype = $db->datatype->mapNativeDatatype($column);
if (PEAR::IsError($mapped_datatype)) {
return $mapped_datatype;
}
list($types, $length, $unsigned, $fixed) = $mapped_datatype;
$notnull = true;
- if ($column['isnullable']) {
+ if ($column['is_nullable']) {
$notnull = false;
}
$default = false;
- if (array_key_exists('default', $column)) {
- $default = $column['default'];
+ if (array_key_exists('column_default', $column)) {
+ $default = $column['column_default'];
if (is_null($default) && $notnull) {
$default = '';
} elseif (strlen($default) > 4
@@ -155,12 +151,9 @@
if (!is_null($unsigned)) {
$definition[0]['unsigned'] = $unsigned;
}
- /*
if (!is_null($fixed)) {
$definition[0]['fixed'] = $fixed;
}
- */
- $definition[0]['fixed'] = !$column['variable'];
if ($default !== false) {
$definition[0]['default'] = $default;
}