96 lines
1.5 KiB
JavaScript
96 lines
1.5 KiB
JavaScript
|
|
var Result = require ('./result');
|
|
|
|
/**
|
|
* This class stores the database results.
|
|
**/
|
|
module.exports = new Class
|
|
({
|
|
results: null
|
|
,error: null
|
|
|
|
/**
|
|
* Initilizes the resultset object.
|
|
**/
|
|
,initialize: function (results, error)
|
|
{
|
|
this.results = results;
|
|
this.error = error;
|
|
}
|
|
|
|
/**
|
|
* Gets the query error.
|
|
*
|
|
* @return {Db.Err} the error or null if no errors hapened
|
|
**/
|
|
,getError: function ()
|
|
{
|
|
return this.error;
|
|
}
|
|
|
|
,fetch: function ()
|
|
{
|
|
if (this.error)
|
|
throw this.error;
|
|
|
|
if (this.results !== null
|
|
&& this.results.length > 0)
|
|
return this.results.shift ();
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Fetchs the next result from the resultset.
|
|
*
|
|
* @return {Db.Result} the result or %null if error or there are no more results
|
|
**/
|
|
,fetchResult: function ()
|
|
{
|
|
var result = this.fetch ();
|
|
|
|
if (result !== null)
|
|
{
|
|
if (result.data instanceof Array)
|
|
return new Result (result);
|
|
else
|
|
return true;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Fetchs the first row from the next resultset.
|
|
*
|
|
* @return {Array} the row if success, %null otherwise
|
|
**/
|
|
,fetchRow: function ()
|
|
{
|
|
var result = this.fetch ();
|
|
|
|
if (result !== null
|
|
&& result.data instanceof Array
|
|
&& result.data.length > 0)
|
|
return result.data[0];
|
|
|
|
return null;
|
|
}
|
|
|
|
/**
|
|
* Fetchs the first row and column value from the next resultset.
|
|
*
|
|
* @return {Object} the value if success, %null otherwise
|
|
**/
|
|
,fetchValue: function ()
|
|
{
|
|
var row = this.fetchRow ();
|
|
|
|
if (row instanceof Array && row.length > 0)
|
|
return row[0];
|
|
|
|
return null;
|
|
}
|
|
});
|
|
|