2) Suppress some error logs for the request to other drivers.
case STMT_INVALID_OPTION_IDENTIFIER:
strcpy(szSqlState, "HY092");
break;
+ case STMT_OPTION_NOT_FOR_THE_DRIVER:
+ strcpy(szSqlState, "HYC00");
+ break;
case STMT_EXEC_ERROR:
default:
strcpy(szSqlState, "S1000");
conn->stmtOptions.use_bookmarks = vParam;
break;
+ case 1227:
+ case 1228:
+ if (stmt)
+ {
+ stmt->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
+ stmt->errormsg = "The option may be for MS SQL Server(Set)";
+ }
+ else if (conn)
+ {
+ conn->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
+ conn->errormsg = "The option may be for MS SQL Server(Set)";
+ }
+ return SQL_ERROR;
default:
{
char option[64];
/* status macros */
#define QR_command_successful(self) ( !(self->status == PGRES_BAD_RESPONSE || self->status == PGRES_NONFATAL_ERROR || self->status == PGRES_FATAL_ERROR))
+#define QR_command_maybe_successful(self) ( !(self->status == PGRES_BAD_RESPONSE || self->status == PGRES_FATAL_ERROR))
#define QR_command_nonfatal(self) ( self->status == PGRES_NONFATAL_ERROR)
#define QR_end_tuples(self) ( self->status == PGRES_END_TUPLES)
#define QR_set_status(self, condition) ( self->status = condition )
break;
case SQL_COLUMN_OWNER_NAME: /* == SQL_DESC_SCHEMA_NAME */
- p = "";
+ p = fi && (fi->ti) ? fi->ti->schema : "";
break;
case SQL_COLUMN_PRECISION: /* in 2.x */
value = (fi && !fi->name[0] && !fi->alias[0]) ? SQL_UNNAMED : SQL_NAMED;
break;
#endif /* ODBCVER */
+ case 1212:
+ stmt->errornumber = STMT_OPTION_NOT_FOR_THE_DRIVER;
+ stmt->errormsg = "this request may be for MS SQL Server";
+ return SQL_ERROR;
default:
stmt->errornumber = STMT_INVALID_OPTION_IDENTIFIER;
stmt->errormsg = "ColAttribute for this type not implemented yet";
/* increment the base row in the tuple cache */
QR_set_rowset_size(res, opts->rowset_size);
- /* QR_inc_base(res, stmt->last_fetch_count); */
- /* Is inc_base right ? */
- res->base = stmt->rowset_start;
+ if (SC_is_fetchcursor(stmt))
+ QR_inc_base(res, stmt->last_fetch_count);
+ else
+ res->base = stmt->rowset_start;
/* Physical Row advancement occurs for each row fetched below */
#define STMT_RETURN_NULL_WITHOUT_INDICATOR 29
#define STMT_ERROR_IN_ROW 30
#define STMT_INVALID_DESCRIPTOR_IDENTIFIER 31
+#define STMT_OPTION_NOT_FOR_THE_DRIVER 32
/* statement types */
enum