When the connection between zabbix server and a remote host is a bit slow, database monitor item is not working, because the SQL_LOGIN_TIMEOUT used to connect is fixed in 5 (five) seconds. Shouldn't be useful for the login timeout be some kind of parameter to configure it without recompiliing?
The change I made to make it work was in ./src/libs/zbxdbhigh/odbc.c the SQL_LOGIN_TIMEOUT (I fixed in 15 and recompile to get it working in my installation).
SQLSetConnectAttr(pdbh->hdbc, (SQLINTEGER)SQL_LOGIN_TIMEOUT, (SQLPOINTER)15, (SQLINTEGER)0);
There are also two more odbc parameters, SQL_ATTR_QUERY_TIMEOUT, SQL_ATTR_CONNECTION_TIMEOUT but in my case I didn't need to change them.
Zabbix forum thred reference