else
{
BOOL is_in_trans_at_entry = CC_is_in_trans(conn);
+ int write_result;
/* begin transaction if needed */
if (!is_in_trans_at_entry)
if (lobj_oid == 0)
{
qb->errornumber = STMT_EXEC_ERROR;
- qb->errormsg = "Couldnt create (in-line) large object.";
+ qb->errormsg = "Couldn't create (in-line) large object.";
retval = SQL_ERROR;
goto cleanup;
}
if (lobj_fd < 0)
{
qb->errornumber = STMT_EXEC_ERROR;
- qb->errormsg = "Couldnt open (in-line) large object for writing.";
+ qb->errormsg = "Couldn't open (in-line) large object for writing.";
retval = SQL_ERROR;
goto cleanup;
}
- retval = odbc_lo_write(conn, lobj_fd, buffer, (Int4) used);
+ write_result = odbc_lo_write(conn, lobj_fd, buffer, (Int4) used);
+ if (write_result < 0)
+ {
+ qb->errornumber = STMT_EXEC_ERROR;
+ qb->errormsg = "Couldn't write to (in-line) large object.";
+ retval = SQL_ERROR;
+ goto cleanup;
+ }
odbc_lo_close(conn, lobj_fd);
#define TRIGGER_DELETE 0x01
#define TRIGGER_UPDATE 0x02
-#define NULL_IF_NULL(a) ((a) ? ((const char *) a) : "(NULL)")
-
/* extern GLOBAL_VALUES globals; */
static const SQLCHAR *pubstr = (SQLCHAR *) "public";
res = NULL;
if (!res)
+ {
newres = res = QR_Constructor();
+ if (!res)
+ {
+ SC_set_error(stmt, STMT_NO_MEMORY_ERROR, "Out of memory while allocating result set", func);
+ goto cleanup;
+ }
+ }
/* 3. Receive results */
inolog("get_Result=%p %p %d\n", res, SC_get_Result(stmt), stmt->curr_param_result);