SQLCHAR state[6];
SQLSMALLINT len;
- SQLGetDiagField(SQL_HANDLE_STMT, sql_conn->dbc_handle, 1, SQL_DIAG_SQLSTATE, state, sizeof(state), &len);
+ SQLGetDiagField(SQL_HANDLE_STMT, sql_conn->stmt, 1, SQL_DIAG_SQLSTATE, state, sizeof(state), &len);
- if (strncmp((char *)state, SQL_CONSTR_INDEX_UNIQUE, 5)) {
+ if (strncmp((char *)state, SQL_CONSTR_INDEX_UNIQUE, 5) == 0) {
query_ctx->rcode = RLM_SQL_ALT_QUERY;
goto finish;
}
for (i = 0; i < fields; i++) {
char *p;
- switch (SQLColAttribute(conn->stmt, i, SQL_DESC_BASE_COLUMN_NAME,
+ switch (SQLColAttribute(conn->stmt, i + 1, SQL_DESC_BASE_COLUMN_NAME,
field, sizeof(field), &len, NULL)) {
case SQL_INVALID_HANDLE:
case SQL_ERROR: