def prepare(self, sql, explain_plan=False): DEBUG_OUTPUT("Statement::prepare()", self.handle) if explain_plan: self.trans.connection._op_prepare_statement( self.handle, self.trans.trans_handle, sql, option_items=bs([isc_info_sql_get_plan])) else: self.trans.connection._op_prepare_statement( self.handle, self.trans.trans_handle, sql) self.plan = None if self.trans.connection.lazy_response_count: self.trans.connection.lazy_response_count -= 1 (h, oid, buf) = self.trans.connection._op_response() self.handle = h (h, oid, buf) = self.trans.connection._op_response() i = 0 if byte_to_int(buf[i]) == isc_info_sql_get_plan: l = bytes_to_int(buf[i + 1:i + 3]) self.plan = self.trans.connection.bytes_to_str(buf[i + 3:i + 3 + l]) i += 3 + l self.stmt_type, self.xsqlda = parse_xsqlda(buf[i:], self.trans.connection, self.handle) if self.stmt_type == isc_info_sql_stmt_select: self._is_open = True
def prepare(self, sql, explain_plan=False): DEBUG_OUTPUT("Statement::prepare()", self.handle) if explain_plan: self.trans.connection._op_prepare_statement( self.handle, self.trans.trans_handle, sql, option_items=bs([isc_info_sql_get_plan])) else: self.trans.connection._op_prepare_statement( self.handle, self.trans.trans_handle, sql) self.plan = None if self.trans.connection.lazy_response_count: self.trans.connection.lazy_response_count -= 1 (h, oid, buf) = self.trans.connection._op_response() self.handle = h (h, oid, buf) = self.trans.connection._op_response() i = 0 if byte_to_int(buf[i]) == isc_info_sql_get_plan: l = bytes_to_int(buf[i+1:i+3]) self.plan = self.trans.connection.bytes_to_str(buf[i+3:i+3+l]) i += 3 + l self.stmt_type, self.xsqlda = parse_xsqlda(buf[i:], self.trans.connection, self.handle) if self.stmt_type == isc_info_sql_stmt_select: self._is_open = True