FS-7673: ODBC NULL value incorrectly evaluated in mod_v8

This commit is contained in:
Saumar Hajjar 2015-09-21 23:36:42 -03:00
parent f8b19b7485
commit 3aa051e1a1
1 changed files with 8 additions and 3 deletions

View File

@ -315,12 +315,17 @@ JS_ODBC_FUNCTION_IMPL(GetData)
SQLULEN ColumnSize;
SQLCHAR name[1024] = "";
SQLCHAR *data = _colbuf;
SQLLEN pcbValue;
SQLDescribeCol(_stmt, x, name, sizeof(name), &NameLength, &DataType, &ColumnSize, &DecimalDigits, &Nullable);
SQLGetData(_stmt, x, SQL_C_CHAR, _colbuf, _cblen, NULL);
SQLGetData(_stmt, x, SQL_C_CHAR, _colbuf, _cblen, &pcbValue);
if (name) {
arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), String::NewFromUtf8(GetIsolate(), data ? (const char *)data : ""));
if (SQL_NULL_DATA == pcbValue) {
arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), Null(info.GetIsolate()));
} else {
arg->Set(String::NewFromUtf8(GetIsolate(), (const char *)name), String::NewFromUtf8(GetIsolate(), data ? (const char *)data : ""));
}
}
}