class Recordset {
var $result, // result id
$rowcount, // number of rows in result
$curpos, // index of current row (begin=0, end=rowcount-1)
$fieldcount, // number of fields in result
$fn, // Array of fields names
$rowset, // Array of fields with keys on field name
$connection, // connection id
$sql; // sql query
//Constructor
function Recordset($Sql,$Conn) {
$this->connection=$Conn;
$this->sql=$Sql;
$this->fn=array();
$this->rowset=array();
$this->Query();
}
// Execute query
function Query() {
$this->Close();
$this->result = @mssql_query($this->sql,$this->connection);
if (!$this->result)
return(0);
$this->rowcount = @mssql_num_rows($this->result);
$this->fieldcount = @mssql_num_fields($this->result);
for ($i=1;$i<=$this->fieldcount;$i++) {
$f=@mssql_fetch_field($this->result,$i-1);
// Fill fields names array
$this->fn[$i]=$f->name;
}
$this->curpos=0;
}
//Move to first record
function MoveFirst() {
$this->curpos=0;
}
//Return current row elements and move to next record
function MoveNext() {
if (!$this->result) return(0);
if ($this->curpos==$this->rowcount) return(0);
for($i=1;$i<=$this->fieldcount;$i++)
$this->rowset[$this->fn[$i]] = @mssql_result($this->result,$this->curpos,$this->fn[$i]);
$this->curpos++;
return($this->rowset);
}
//Return true if last record
function Eof() {
if ($this->curpos==$this->rowcount-1)
return(1);
return(0);
}
//Return true if first record
function Bof() {
if (!$this->curpos)
return(1);
return(0);
}
// Free result if exist
function Close() {
if ($this->result && $this->rowcount)
mssql_free_result($this->result);
$this->result=0;
$this->fn=array();
$this->rowset=array();
$this->rowcount=0;
$this->fieldcount=0;
}
}
?>