--- datadict-mssqlnative.inc.php 2012-01-22 10:05:29.312500000 +0100 +++ datadict-mssqlnative.inc-orig.php 2012-01-19 14:44:32.000000000 +0100 @@ -121,66 +121,19 @@ return $sql; } + /* function AlterColumnSQL($tabname, $flds) { - $tabname = $this->TableName($tabname); + $tabname = $this->TableName ($tabname); $sql = array(); list($lines,$pkey) = $this->_GenFields($flds); - foreach($lines as $v) { + $sql[] = "ALTER TABLE $tabname $this->alterCol $v"; + } - // get field name and type - $arTmp = array(); - $arTmp = preg_split("/[\s]+/", $v); - $arCnt = count($arTmp); - $fieldname = $arTmp[0]; - $fieldtype = $arTmp[1]; - - $bHasDef = false; - $bIsNull = true; - - for($i = 2; $i < $arCnt; $i++) { - // get default value - if( trim($arTmp[$i]) == "DEFAULT" ) - { - $bHasDef = true; - if( $i+1 <= $arCnt ) { - $field_def = $arTmp[$i+1]; - } - } - - // get nullability - if( trim($arTmp[$i]) == "NOTNULL" ) - $bIsNull = false; - } - - - // delete default value if exists - $strDropDef = $this->DropDefaultValue($tabname, $fieldname); - if( trim($strDropDef) !== "" ) - $sql[] = $strDropDef; - - - if($bHasDef) { - // change type and nulls - if($bIsNull) - $sql[] = "ALTER TABLE $tabname $this->alterCol $fieldname $fieldtype NOT NULL"; - else - $sql[] = "ALTER TABLE $tabname$this->alterCol $fieldname $fieldtype"; - // Add default value - $sql[] = "ALTER TABLE $tabname ADD CONSTRAINT def_" . $tabname . "_" . $fieldname . " DEFAULT " . $field_def . " FOR $fieldname"; - } - else { - $sql[] = "ALTER TABLE $tabname $this->alterCol $v"; - } - } -/* - echo "
";
-		print_r($sql);
-		echo "

"; -*/ return $sql; } + */ function DropColumnSQL($tabname, $flds) { @@ -190,59 +143,12 @@ $f = array(); $s = 'ALTER TABLE ' . $tabname; foreach($flds as $v) { - - // delete default value if exists - $strDropDef = $this->DropDefaultValue($tabname, $v); - if( trim($strDropDef) !== "" ) - $sql[] = $strDropDef; - - $f[] = "\n$this->dropCol ".$this->NameQuote($v); } $s .= implode(', ',$f); $sql[] = $s; -/* - echo "
";
-		print_r($sql);
-		echo "

"; -*/ return $sql; } - - function DropDefaultValue($tabname, $fieldname) - { - $strSql = ""; - - // delete default value if exists - if( $this->connection->IsConnected() ) - { - $oRs = $this->connection->Execute(' - - SELECT name FROM sysobjects so JOIN sysconstraints sc ON so.id = sc.constid - WHERE object_name(so.parent_obj) = \'' . $tabname . '\' - AND so.xtype = \'D\' - AND sc.colid = ( - SELECT colid FROM syscolumns - WHERE id = object_id(\'' . $tabname . '\') AND name = \'' . $fieldname . '\' - ) - '); - if( $oRs ) - if(!$oRs->EOF) - { - $defName = $oRs->fields['name']; - // Remove default value - $strSql = "ALTER TABLE $tabname DROP CONSTRAINT $defName"; - } - - $oRs->Close(); - }; -/* - echo "
";
-		print_r($strSql);
-		echo "

"; -*/ - return $strSql; - } // return string must begin with space function _CreateSuffix($fname,&$ftype,$fnotnull,$fdefault,$fautoinc,$fconstraint,$funsigned)