36 lines
1007 B
JavaScript
36 lines
1007 B
JavaScript
|
module.exports = ErrorPacket;
|
||
|
function ErrorPacket(options) {
|
||
|
options = options || {};
|
||
|
|
||
|
this.fieldCount = options.fieldCount;
|
||
|
this.errno = options.errno;
|
||
|
this.sqlStateMarker = options.sqlStateMarker;
|
||
|
this.sqlState = options.sqlState;
|
||
|
this.message = options.message;
|
||
|
}
|
||
|
|
||
|
ErrorPacket.prototype.parse = function(parser) {
|
||
|
this.fieldCount = parser.parseUnsignedNumber(1);
|
||
|
this.errno = parser.parseUnsignedNumber(2);
|
||
|
|
||
|
// sqlStateMarker ('#' = 0x23) indicates error packet format
|
||
|
if (parser.peak() === 0x23) {
|
||
|
this.sqlStateMarker = parser.parseString(1);
|
||
|
this.sqlState = parser.parseString(5);
|
||
|
}
|
||
|
|
||
|
this.message = parser.parsePacketTerminatedString();
|
||
|
};
|
||
|
|
||
|
ErrorPacket.prototype.write = function(writer) {
|
||
|
writer.writeUnsignedNumber(1, 0xff);
|
||
|
writer.writeUnsignedNumber(2, this.errno);
|
||
|
|
||
|
if (this.sqlStateMarker) {
|
||
|
writer.writeString(this.sqlStateMarker);
|
||
|
writer.writeString(this.sqlState);
|
||
|
}
|
||
|
|
||
|
writer.writeString(this.message);
|
||
|
};
|