Additional tests to MSSQL (windows.plugin) (#21255)
thiagoftsm committed
Nov 4, 2025 at 14:28 UTC
34269aeeccd47938c8123ea53f80a90dee5d11d6
1 file changed
+52
-49
src/collectors/windows.plugin/perflib-mssql.c
+52
-49
@@ -271,6 +271,10 @@ enum netdata_mssql_odbc_errors {
271
NETDATA_MSSQL_ODBC_FETCH
272
};
273
274
+static inline int netdata_mssql_check_result(SQLRETURN ret) {
275
+ return (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO);
276
+}
277
+
278
static char *netdata_MSSQL_error_text(enum netdata_mssql_odbc_errors val)
279
{
280
switch (val) {
@@ -338,20 +342,19 @@ static ULONGLONG netdata_MSSQL_fill_long_value(SQLHSTMT *stmt, const char *mask,
342
SQLRETURN ret;
343
344
ret = SQLExecDirect(stmt, query, SQL_NTS);
341
- if (ret != SQL_SUCCESS) {
345
+ if (netdata_mssql_check_result(ret)) {
346
netdata_MSSQL_error(SQL_HANDLE_STMT, stmt, NETDATA_MSSQL_ODBC_QUERY, instance);
347
return (ULONGLONG)ULONG_LONG_MAX;
348
}
349
350
ret = SQLBindCol(stmt, 1, SQL_C_LONG, &db_size, sizeof(long), &col_data_len);
347
-
348
- if (ret != SQL_SUCCESS) {
351
+ if (netdata_mssql_check_result(ret)) {
352
netdata_MSSQL_error(SQL_HANDLE_STMT, stmt, NETDATA_MSSQL_ODBC_PREPARE, instance);
353
return (ULONGLONG)ULONG_LONG_MAX;
354
}
355
356
ret = SQLFetch(stmt);
354
- if (ret != SQL_SUCCESS) {
357
+ if (netdata_mssql_check_result(ret)) {
358
netdata_MSSQL_error(SQL_HANDLE_STMT, stmt, NETDATA_MSSQL_ODBC_FETCH, instance);
359
return (ULONGLONG)ULONG_LONG_MAX;
360
}
@@ -385,7 +388,7 @@ void dict_mssql_fill_instance_transactions(struct mssql_db_instance *mdi)
388
mdi->parent->instanceID);
389
390
SQLRETURN ret = SQLExecDirect(mdi->parent->conn->dbInstanceTransactionSTMT, (SQLCHAR *)query, SQL_NTS);
388
- if (ret != SQL_SUCCESS) {
391
+ if (netdata_mssql_check_result(ret)) {
392
mdi->collecting_data = false;
393
netdata_MSSQL_error(
394
SQL_HANDLE_STMT,
@@ -397,7 +400,7 @@ void dict_mssql_fill_instance_transactions(struct mssql_db_instance *mdi)
400
401
ret = SQLBindCol(
402
mdi->parent->conn->dbInstanceTransactionSTMT, 1, SQL_C_CHAR, object_name, sizeof(object_name), &col_object_len);
400
- if (ret != SQL_SUCCESS) {
403
+ if (netdata_mssql_check_result(ret)) {
404
netdata_MSSQL_error(
405
SQL_HANDLE_STMT,
406
mdi->parent->conn->dbInstanceTransactionSTMT,
@@ -408,7 +411,7 @@ void dict_mssql_fill_instance_transactions(struct mssql_db_instance *mdi)
411
412
ret =
413
SQLBindCol(mdi->parent->conn->dbInstanceTransactionSTMT, 2, SQL_C_LONG, &value, sizeof(value), &col_value_len);
411
- if (ret != SQL_SUCCESS) {
414
+ if (netdata_mssql_check_result(ret)) {
415
netdata_MSSQL_error(
416
SQL_HANDLE_STMT,
417
mdi->parent->conn->dbInstanceTransactionSTMT,
@@ -507,7 +510,7 @@ void dict_mssql_fill_transactions(struct mssql_db_instance *mdi, const char *dbn
510
dbname);
511
512
SQLRETURN ret = SQLExecDirect(mdi->parent->conn->dbTransactionSTMT, (SQLCHAR *)query, SQL_NTS);
510
- if (ret != SQL_SUCCESS) {
513
+ if (netdata_mssql_check_result(ret)) {
514
mdi->collecting_data = false;
515
netdata_MSSQL_error(
516
SQL_HANDLE_STMT, mdi->parent->conn->dbTransactionSTMT, NETDATA_MSSQL_ODBC_QUERY, mdi->parent->instanceID);
@@ -516,14 +519,14 @@ void dict_mssql_fill_transactions(struct mssql_db_instance *mdi, const char *dbn
519
520
ret = SQLBindCol(
521
mdi->parent->conn->dbTransactionSTMT, 1, SQL_C_CHAR, object_name, sizeof(object_name), &col_object_len);
519
- if (ret != SQL_SUCCESS) {
522
+ if (netdata_mssql_check_result(ret)) {
523
netdata_MSSQL_error(
524
SQL_HANDLE_STMT, mdi->parent->conn->dbTransactionSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
525
goto endtransactions;
526
}
527
528
ret = SQLBindCol(mdi->parent->conn->dbTransactionSTMT, 2, SQL_C_LONG, &value, sizeof(value), &col_value_len);
526
- if (ret != SQL_SUCCESS) {
529
+ if (netdata_mssql_check_result(ret)) {
530
netdata_MSSQL_error(
531
SQL_HANDLE_STMT, mdi->parent->conn->dbTransactionSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
532
goto endtransactions;
@@ -599,7 +602,7 @@ void dict_mssql_fill_locks(struct mssql_db_instance *mdi, const char *dbname)
602
dbname);
603
604
SQLRETURN ret = SQLExecDirect(mdi->parent->conn->dbLocksSTMT, (SQLCHAR *)query, SQL_NTS);
602
- if (ret != SQL_SUCCESS) {
605
+ if (netdata_mssql_check_result(ret)) {
606
mdi->collecting_data = false;
607
netdata_MSSQL_error(
608
SQL_HANDLE_STMT, mdi->parent->conn->dbLocksSTMT, NETDATA_MSSQL_ODBC_QUERY, mdi->parent->instanceID);
@@ -608,14 +611,14 @@ void dict_mssql_fill_locks(struct mssql_db_instance *mdi, const char *dbname)
611
612
ret = SQLBindCol(
613
mdi->parent->conn->dbLocksSTMT, 1, SQL_C_CHAR, resource_type, sizeof(resource_type), &col_object_len);
611
- if (ret != SQL_SUCCESS) {
614
+ if (netdata_mssql_check_result(ret)) {
615
netdata_MSSQL_error(
616
SQL_HANDLE_STMT, mdi->parent->conn->dbLocksSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
617
goto endlocks;
618
}
619
620
ret = SQLBindCol(mdi->parent->conn->dbLocksSTMT, 2, SQL_C_LONG, &value, sizeof(value), &col_value_len);
618
- if (ret != SQL_SUCCESS) {
621
+ if (netdata_mssql_check_result(ret)) {
622
netdata_MSSQL_error(
623
SQL_HANDLE_STMT, mdi->parent->conn->dbLocksSTMT, NETDATA_MSSQL_ODBC_PREPARE, mdi->parent->instanceID);
624
goto endlocks;
@@ -662,52 +665,52 @@ int dict_mssql_fill_waits(struct mssql_instance *mi)
665
col_max_wait_len = 0, col_waiting_tasks_len = 0, col_wait_category_len = 0;
666
667
SQLRETURN ret = SQLExecDirect(mi->conn->dbWaitsSTMT, (SQLCHAR *)NETDATA_QUERY_CHECK_WAITS, SQL_NTS);
665
- if (ret != SQL_SUCCESS) {
668
+ if (netdata_mssql_check_result(ret)) {
669
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_QUERY, mi->instanceID);
670
goto endwait;
671
}
672
673
ret = SQLBindCol(mi->conn->dbWaitsSTMT, 1, SQL_C_CHAR, wait_type, sizeof(wait_type), &col_wait_type_len);
671
- if (ret != SQL_SUCCESS) {
674
+ if (netdata_mssql_check_result(ret)) {
675
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
676
goto endwait;
677
}
678
679
ret = SQLBindCol(mi->conn->dbWaitsSTMT, 2, SQL_C_LONG, &total_wait, sizeof(total_wait), &col_total_wait_len);
677
- if (ret != SQL_SUCCESS) {
680
+ if (netdata_mssql_check_result(ret)) {
681
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
682
goto endwait;
683
}
684
685
ret =
686
SQLBindCol(mi->conn->dbWaitsSTMT, 3, SQL_C_LONG, &resource_wait, sizeof(resource_wait), &col_resource_wait_len);
684
- if (ret != SQL_SUCCESS) {
687
+ if (netdata_mssql_check_result(ret)) {
688
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
689
goto endwait;
690
}
691
692
ret = SQLBindCol(mi->conn->dbWaitsSTMT, 4, SQL_C_LONG, &signal_wait, sizeof(signal_wait), &col_signal_wait_len);
690
- if (ret != SQL_SUCCESS) {
693
+ if (netdata_mssql_check_result(ret)) {
694
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
695
goto endwait;
696
}
697
698
ret = SQLBindCol(mi->conn->dbWaitsSTMT, 5, SQL_C_LONG, &max_wait, sizeof(max_wait), &col_max_wait_len);
696
- if (ret != SQL_SUCCESS) {
699
+ if (netdata_mssql_check_result(ret)) {
700
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
701
goto endwait;
702
}
703
704
ret =
705
SQLBindCol(mi->conn->dbWaitsSTMT, 6, SQL_C_LONG, &waiting_tasks, sizeof(waiting_tasks), &col_waiting_tasks_len);
703
- if (ret != SQL_SUCCESS) {
706
+ if (netdata_mssql_check_result(ret)) {
707
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
708
goto endwait;
709
}
710
711
ret =
712
SQLBindCol(mi->conn->dbWaitsSTMT, 7, SQL_C_CHAR, wait_category, sizeof(wait_category), &col_wait_category_len);
710
- if (ret != SQL_SUCCESS) {
713
+ if (netdata_mssql_check_result(ret)) {
714
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
715
goto endwait;
716
}
@@ -786,7 +789,7 @@ long metdata_mssql_check_permission(struct mssql_instance *mi)
789
SQLRETURN ret;
790
791
ret = SQLExecDirect(mi->conn->checkPermSTMT, (SQLCHAR *)NETDATA_QUERY_CHECK_PERM, SQL_NTS);
789
- if (ret != SQL_SUCCESS) {
792
+ if (netdata_mssql_check_result(ret)) {
793
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->checkPermSTMT, NETDATA_MSSQL_ODBC_QUERY, mi->instanceID);
794
perm = LONG_MAX;
795
goto endperm;
@@ -794,14 +797,14 @@ long metdata_mssql_check_permission(struct mssql_instance *mi)
797
798
ret = SQLBindCol(mi->conn->checkPermSTMT, 1, SQL_C_LONG, &perm, sizeof(perm), &col_data_len);
799
797
- if (ret != SQL_SUCCESS) {
800
+ if (netdata_mssql_check_result(ret)) {
801
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->checkPermSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
802
perm = LONG_MAX;
803
goto endperm;
804
}
805
806
ret = SQLFetch(mi->conn->checkPermSTMT);
804
- if (ret != SQL_SUCCESS) {
807
+ if (netdata_mssql_check_result(ret)) {
808
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->checkPermSTMT, NETDATA_MSSQL_ODBC_FETCH, mi->instanceID);
809
perm = LONG_MAX;
810
goto endperm;
@@ -829,19 +832,19 @@ void metdata_mssql_fill_mssql_status(struct mssql_instance *mi)
832
SQLRETURN ret;
833
834
ret = SQLExecDirect(mi->conn->dbSQLState, (SQLCHAR *)NETDATA_QUERY_DATABASE_STATUS, SQL_NTS);
832
- if (ret != SQL_SUCCESS) {
835
+ if (netdata_mssql_check_result(ret)) {
836
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbSQLState, NETDATA_MSSQL_ODBC_QUERY, mi->instanceID);
837
goto enddbstate;
838
}
839
840
ret = SQLBindCol(mi->conn->dbSQLState, 1, SQL_C_TINYINT, &state, sizeof(state), &col_data_len);
838
- if (ret != SQL_SUCCESS) {
841
+ if (netdata_mssql_check_result(ret)) {
842
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbSQLState, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
843
goto enddbstate;
844
}
845
846
ret = SQLBindCol(mi->conn->dbSQLState, 3, SQL_C_BIT, &readonly, sizeof(readonly), &col_data_len);
844
- if (ret != SQL_SUCCESS) {
847
+ if (netdata_mssql_check_result(ret)) {
848
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbWaitsSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
849
goto enddbstate;
850
}
@@ -849,7 +852,7 @@ void metdata_mssql_fill_mssql_status(struct mssql_instance *mi)
852
int i = 0;
853
do {
854
ret = SQLFetch(mi->conn->dbSQLState);
852
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
855
+ if (netdata_mssql_check_result(ret)) {
856
goto enddbstate;
857
}
858
@@ -882,26 +885,26 @@ void metdata_mssql_fill_job_status(struct mssql_instance *mi)
885
SQLRETURN ret;
886
887
ret = SQLExecDirect(mi->conn->dbSQLJobs, (SQLCHAR *)NETDATA_QUERY_JOBS_STATUS, SQL_NTS);
885
- if (ret != SQL_SUCCESS) {
888
+ if (netdata_mssql_check_result(ret)) {
889
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbSQLJobs, NETDATA_MSSQL_ODBC_QUERY, mi->instanceID);
890
goto enddbjobs;
891
}
892
893
ret = SQLBindCol(mi->conn->dbSQLJobs, 1, SQL_C_CHAR, job, sizeof(job), &col_job_len);
891
- if (ret != SQL_SUCCESS) {
894
+ if (netdata_mssql_check_result(ret)) {
895
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbSQLJobs, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
896
goto enddbjobs;
897
}
898
899
ret = SQLBindCol(mi->conn->dbSQLJobs, 2, SQL_C_TINYINT, &state, sizeof(state), &col_state_len);
897
- if (ret != SQL_SUCCESS) {
900
+ if (netdata_mssql_check_result(ret)) {
901
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->dbSQLJobs, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
902
goto enddbjobs;
903
}
904
905
do {
906
ret = SQLFetch(mi->conn->dbSQLJobs);
904
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
907
+ if (netdata_mssql_check_result(ret)) {
908
goto enddbjobs;
909
}
910
@@ -931,14 +934,14 @@ void metdata_mssql_fill_dictionary_from_db(struct mssql_instance *mi)
934
SQLRETURN ret;
935
936
ret = SQLExecDirect(mi->conn->databaseListSTMT, (SQLCHAR *)NETDATA_QUERY_LIST_DB, SQL_NTS);
934
- if (ret != SQL_SUCCESS) {
937
+ if (netdata_mssql_check_result(ret)) {
938
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->databaseListSTMT, NETDATA_MSSQL_ODBC_QUERY, mi->instanceID);
939
goto enddblist;
940
}
941
942
ret = SQLBindCol(mi->conn->databaseListSTMT, 1, SQL_C_CHAR, dbname, sizeof(dbname), &col_data_len);
943
941
- if (ret != SQL_SUCCESS) {
944
+ if (netdata_mssql_check_result(ret)) {
945
netdata_MSSQL_error(SQL_HANDLE_STMT, mi->conn->databaseListSTMT, NETDATA_MSSQL_ODBC_PREPARE, mi->instanceID);
946
goto enddblist;
947
}
@@ -946,7 +949,7 @@ void metdata_mssql_fill_dictionary_from_db(struct mssql_instance *mi)
949
int i = 0;
950
do {
951
ret = SQLFetch(mi->conn->databaseListSTMT);
949
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
952
+ if (netdata_mssql_check_result(ret)) {
953
goto enddblist;
954
}
955
@@ -973,27 +976,27 @@ static bool netdata_MSSQL_initialize_connection(struct netdata_mssql_conn *nmc)
976
SQLRETURN ret;
977
if (nmc->netdataSQLEnv == NULL) {
978
ret = SQLAllocHandle(SQL_HANDLE_ENV, SQL_NULL_HANDLE, &nmc->netdataSQLEnv);
976
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO)
979
+ if (netdata_mssql_check_result(ret))
980
return FALSE;
981
982
ret = SQLSetEnvAttr(nmc->netdataSQLEnv, SQL_ATTR_ODBC_VERSION, (SQLPOINTER)SQL_OV_ODBC3, 0);
980
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
983
+ if (netdata_mssql_check_result(ret)) {
984
return FALSE;
985
}
986
}
987
988
ret = SQLAllocHandle(SQL_HANDLE_DBC, nmc->netdataSQLEnv, &nmc->netdataSQLHDBc);
986
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
989
+ if (netdata_mssql_check_result(ret)) {
990
return FALSE;
991
}
992
993
ret = SQLSetConnectAttr(nmc->netdataSQLHDBc, SQL_LOGIN_TIMEOUT, (SQLPOINTER)5, 0);
991
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
994
+ if (netdata_mssql_check_result(ret)) {
995
return FALSE;
996
}
997
998
ret = SQLSetConnectAttr(nmc->netdataSQLHDBc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)TRUE, 0);
996
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
999
+ if (netdata_mssql_check_result(ret)) {
1000
return FALSE;
1001
}
1002
@@ -1020,55 +1023,55 @@ static bool netdata_MSSQL_initialize_connection(struct netdata_mssql_conn *nmc)
1023
SQLSetConnectAttr(nmc->netdataSQLHDBc, SQL_ATTR_AUTOCOMMIT, (SQLPOINTER)SQL_AUTOCOMMIT_ON, 0);
1024
1025
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->checkPermSTMT);
1023
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1026
+ if (netdata_mssql_check_result(ret)) {
1027
retConn = FALSE;
1028
goto endMSSQLInitializationConnection;
1029
}
1030
1031
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->databaseListSTMT);
1029
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1032
+ if (netdata_mssql_check_result(ret)) {
1033
retConn = FALSE;
1034
goto endMSSQLInitializationConnection;
1035
}
1036
1037
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dataFileSizeSTMT);
1035
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1038
+ if (netdata_mssql_check_result(ret)) {
1039
retConn = FALSE;
1040
goto endMSSQLInitializationConnection;
1041
}
1042
1043
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbTransactionSTMT);
1041
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1044
+ if (netdata_mssql_check_result(ret)) {
1045
retConn = FALSE;
1046
goto endMSSQLInitializationConnection;
1047
}
1048
1049
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbInstanceTransactionSTMT);
1047
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1050
+ if (netdata_mssql_check_result(ret)) {
1051
retConn = FALSE;
1052
goto endMSSQLInitializationConnection;
1053
}
1054
1055
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbLocksSTMT);
1053
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1056
+ if (netdata_mssql_check_result(ret)) {
1057
retConn = FALSE;
1058
goto endMSSQLInitializationConnection;
1059
}
1060
1061
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbWaitsSTMT);
1059
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1062
+ if (netdata_mssql_check_result(ret)) {
1063
retConn = FALSE;
1064
goto endMSSQLInitializationConnection;
1065
}
1066
1067
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbSQLState);
1065
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1068
+ if (netdata_mssql_check_result(ret)) {
1069
retConn = FALSE;
1070
goto endMSSQLInitializationConnection;
1071
}
1072
1073
ret = SQLAllocHandle(SQL_HANDLE_STMT, nmc->netdataSQLHDBc, &nmc->dbSQLJobs);
1071
- if (ret != SQL_SUCCESS && ret != SQL_SUCCESS_WITH_INFO) {
1074
+ if (netdata_mssql_check_result(ret)) {
1075
retConn = FALSE;
1076
goto endMSSQLInitializationConnection;
1077
}