From e68084780f29a6ed99dc2368a6df8f43b58d4377 Mon Sep 17 00:00:00 2001 From: Anatol Belski Date: Wed, 20 Dec 2017 22:32:10 +0100 Subject: [PATCH] Tell the diff by returning NULL, if system has no ODBC data sources --- ext/odbc/php_odbc.c | 6 +++++- ext/odbc/tests/odbc_data_source_001.phpt | 7 ++++++- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/ext/odbc/php_odbc.c b/ext/odbc/php_odbc.c index a2eb8ee41b..1cb127a012 100644 --- a/ext/odbc/php_odbc.c +++ b/ext/odbc/php_odbc.c @@ -1592,7 +1592,11 @@ PHP_FUNCTION(odbc_data_source) (SQLSMALLINT)sizeof(desc), &len2); - if (rc != SQL_SUCCESS) { + if (SQL_NO_DATA == rc) { + /* System has no data sources, no error. Signal it by returning NULL, + not false. */ + RETURN_NULL(); + } else if (rc != SQL_SUCCESS) { /* ummm.... he did it */ odbc_sql_error(conn, SQL_NULL_HSTMT, "SQLDataSources"); RETURN_FALSE; diff --git a/ext/odbc/tests/odbc_data_source_001.phpt b/ext/odbc/tests/odbc_data_source_001.phpt index b3e29dde5c..6900f13205 100644 --- a/ext/odbc/tests/odbc_data_source_001.phpt +++ b/ext/odbc/tests/odbc_data_source_001.phpt @@ -1,7 +1,12 @@ --TEST-- odbc_data_source(): Basic test --SKIPIF-- - + --FILE--