MCPcopy Create free account
hub / github.com/FirebirdSQL/firebird / createStatement

Method createStatement

src/remote/client/interface.cpp:4323–4361  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

4321
4322
4323Statement* Attachment::createStatement(CheckStatusWrapper* status, unsigned dialect)
4324{
4325 reset(status);
4326
4327 Rsr* statement = NULL;
4328 if (rdb->rdb_port->port_flags & PORT_lazy)
4329 {
4330 statement = FB_NEW Rsr;
4331 statement->rsr_rdb = rdb;
4332 statement->rsr_id = INVALID_OBJECT;
4333 statement->rsr_flags.set(Rsr::LAZY);
4334 }
4335 else
4336 {
4337 PACKET* packet = &rdb->rdb_packet;
4338 packet->p_operation = op_allocate_statement;
4339 packet->p_rlse.p_rlse_object = rdb->rdb_id;
4340
4341 send_and_receive(status, rdb, packet);
4342
4343 // Allocate SQL request block
4344
4345 statement = FB_NEW Rsr;
4346 statement->rsr_rdb = rdb;
4347 statement->rsr_id = packet->p_resp.p_resp_object;
4348
4349 // register the object
4350
4351 SET_OBJECT(rdb, statement, statement->rsr_id);
4352 }
4353
4354 statement->rsr_next = rdb->rdb_sql_requests;
4355 rdb->rdb_sql_requests = statement;
4356 statement->rsr_inline_blob_size = rdb->rdb_inline_blob_size;
4357
4358 Statement* s = FB_NEW Statement(statement, this, dialect);
4359 s->addRef();
4360 return s;
4361}
4362
4363
4364Statement* Attachment::prepare(CheckStatusWrapper* status, ITransaction* apiTra,

Callers

nothing calls this directly

Calls 5

send_and_receiveFunction · 0.85
resetFunction · 0.70
StatementClass · 0.70
setMethod · 0.45
addRefMethod · 0.45

Tested by

no test coverage detected