1) Fix a bug in declare/fetch mode.
2) Suppress some error logs for the request to other drivers.
This commit is contained in:
parent
50b5d4bf76
commit
40eb5495c9
@ -281,6 +281,9 @@ PGAPI_StmtError( HSTMT hstmt,
|
|||||||
case STMT_INVALID_OPTION_IDENTIFIER:
|
case STMT_INVALID_OPTION_IDENTIFIER:
|
||||||
strcpy(szSqlState, "HY092");
|
strcpy(szSqlState, "HY092");
|
||||||
break;
|
break;
|
||||||
|
case STMT_OPTION_NOT_FOR_THE_DRIVER:
|
||||||
|
strcpy(szSqlState, "HYC00");
|
||||||
|
break;
|
||||||
case STMT_EXEC_ERROR:
|
case STMT_EXEC_ERROR:
|
||||||
default:
|
default:
|
||||||
strcpy(szSqlState, "S1000");
|
strcpy(szSqlState, "S1000");
|
||||||
|
@ -209,6 +209,19 @@ set_statement_option(ConnectionClass *conn,
|
|||||||
conn->stmtOptions.use_bookmarks = vParam;
|
conn->stmtOptions.use_bookmarks = vParam;
|
||||||
break;
|
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:
|
default:
|
||||||
{
|
{
|
||||||
char option[64];
|
char option[64];
|
||||||
|
@ -102,6 +102,7 @@ struct QResultClass_
|
|||||||
|
|
||||||
/* status macros */
|
/* 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_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_command_nonfatal(self) ( self->status == PGRES_NONFATAL_ERROR)
|
||||||
#define QR_end_tuples(self) ( self->status == PGRES_END_TUPLES)
|
#define QR_end_tuples(self) ( self->status == PGRES_END_TUPLES)
|
||||||
#define QR_set_status(self, condition) ( self->status = condition )
|
#define QR_set_status(self, condition) ( self->status = condition )
|
||||||
|
@ -628,7 +628,7 @@ inolog("COLUMN_NULLABLE=%d\n", value);
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case SQL_COLUMN_OWNER_NAME: /* == SQL_DESC_SCHEMA_NAME */
|
case SQL_COLUMN_OWNER_NAME: /* == SQL_DESC_SCHEMA_NAME */
|
||||||
p = "";
|
p = fi && (fi->ti) ? fi->ti->schema : "";
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case SQL_COLUMN_PRECISION: /* in 2.x */
|
case SQL_COLUMN_PRECISION: /* in 2.x */
|
||||||
@ -744,6 +744,10 @@ inolog("COLUMN_TYPE=%d\n", value);
|
|||||||
value = (fi && !fi->name[0] && !fi->alias[0]) ? SQL_UNNAMED : SQL_NAMED;
|
value = (fi && !fi->name[0] && !fi->alias[0]) ? SQL_UNNAMED : SQL_NAMED;
|
||||||
break;
|
break;
|
||||||
#endif /* ODBCVER */
|
#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:
|
default:
|
||||||
stmt->errornumber = STMT_INVALID_OPTION_IDENTIFIER;
|
stmt->errornumber = STMT_INVALID_OPTION_IDENTIFIER;
|
||||||
stmt->errormsg = "ColAttribute for this type not implemented yet";
|
stmt->errormsg = "ColAttribute for this type not implemented yet";
|
||||||
@ -1293,8 +1297,9 @@ PGAPI_ExtendedFetch(
|
|||||||
|
|
||||||
/* increment the base row in the tuple cache */
|
/* increment the base row in the tuple cache */
|
||||||
QR_set_rowset_size(res, opts->rowset_size);
|
QR_set_rowset_size(res, opts->rowset_size);
|
||||||
/* QR_inc_base(res, stmt->last_fetch_count); */
|
if (SC_is_fetchcursor(stmt))
|
||||||
/* Is inc_base right ? */
|
QR_inc_base(res, stmt->last_fetch_count);
|
||||||
|
else
|
||||||
res->base = stmt->rowset_start;
|
res->base = stmt->rowset_start;
|
||||||
|
|
||||||
/* Physical Row advancement occurs for each row fetched below */
|
/* Physical Row advancement occurs for each row fetched below */
|
||||||
|
@ -79,6 +79,7 @@ typedef enum
|
|||||||
#define STMT_RETURN_NULL_WITHOUT_INDICATOR 29
|
#define STMT_RETURN_NULL_WITHOUT_INDICATOR 29
|
||||||
#define STMT_ERROR_IN_ROW 30
|
#define STMT_ERROR_IN_ROW 30
|
||||||
#define STMT_INVALID_DESCRIPTOR_IDENTIFIER 31
|
#define STMT_INVALID_DESCRIPTOR_IDENTIFIER 31
|
||||||
|
#define STMT_OPTION_NOT_FOR_THE_DRIVER 32
|
||||||
|
|
||||||
/* statement types */
|
/* statement types */
|
||||||
enum
|
enum
|
||||||
|
Loading…
x
Reference in New Issue
Block a user