From: Saumar Hajjar Date: Tue, 22 Sep 2015 02:36:42 +0000 (-0300) Subject: FS-7673: [mod_v8] Fixed ODBC NULL value incorrectly evaluated X-Git-Tag: v1.4.24~7 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=4977f608fe74ed0caf4f58e595aa553973a48844;p=thirdparty%2Ffreeswitch.git FS-7673: [mod_v8] Fixed ODBC NULL value incorrectly evaluated --- diff --git a/src/mod/languages/mod_v8/src/fsodbc.cpp b/src/mod/languages/mod_v8/src/fsodbc.cpp index 79cf57a906..80bc90ebd7 100644 --- a/src/mod/languages/mod_v8/src/fsodbc.cpp +++ b/src/mod/languages/mod_v8/src/fsodbc.cpp @@ -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 : "")); + } } }