00001 <?php
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 if (!defined('ADODB_DIR')) die();
00020
00021 if (!defined('_ADODB_ADO_LAYER')) {
00022 if (PHP_VERSION >= 5) include(ADODB_DIR."/drivers/adodb-ado5.inc.php");
00023 else include(ADODB_DIR."/drivers/adodb-ado.inc.php");
00024 }
00025
00026
00027 class ADODB_ado_mssql extends ADODB_ado {
00028 var $databaseType = 'ado_mssql';
00029 var $hasTop = 'top';
00030 var $hasInsertID = true;
00031 var $sysDate = 'convert(datetime,convert(char,GetDate(),102),102)';
00032 var $sysTimeStamp = 'GetDate()';
00033 var $leftOuter = '*=';
00034 var $rightOuter = '=*';
00035 var $ansiOuter = true;
00036 var $substr = "substring";
00037 var $length = 'len';
00038
00039
00040
00041 function ADODB_ado_mssql()
00042 {
00043 $this->ADODB_ado();
00044 }
00045
00046 function _insertid()
00047 {
00048 return $this->GetOne('select @@identity');
00049 }
00050
00051 function _affectedrows()
00052 {
00053 return $this->GetOne('select @@rowcount');
00054 }
00055
00056 function MetaColumns($table)
00057 {
00058 $table = strtoupper($table);
00059 $arr= array();
00060 $dbc = $this->_connectionID;
00061
00062 $osoptions = array();
00063 $osoptions[0] = null;
00064 $osoptions[1] = null;
00065 $osoptions[2] = $table;
00066 $osoptions[3] = null;
00067
00068 $adors=@$dbc->OpenSchema(4, $osoptions);
00069
00070 if ($adors){
00071 while (!$adors->EOF){
00072 $fld = new ADOFieldObject();
00073 $c = $adors->Fields(3);
00074 $fld->name = $c->Value;
00075 $fld->type = 'CHAR';
00076 $fld->max_length = -1;
00077 $arr[strtoupper($fld->name)]=$fld;
00078
00079 $adors->MoveNext();
00080 }
00081 $adors->Close();
00082 }
00083 $false = false;
00084 return empty($arr) ? $false : $arr;
00085 }
00086
00087 }
00088
00089 class ADORecordSet_ado_mssql extends ADORecordSet_ado {
00090
00091 var $databaseType = 'ado_mssql';
00092
00093 function ADORecordSet_ado_mssql($id,$mode=false)
00094 {
00095 return $this->ADORecordSet_ado($id,$mode);
00096 }
00097 }
00098 ?>