| 1623 | } |
| 1624 | |
| 1625 | bool sqliteOperation::insertOdObjects(hadmap::tx_od_object_vec& od_object) { |
| 1626 | const char* sql = SQL_INSERT_OBJECT_OD_TABLE; |
| 1627 | sqliteStmtPtr stmt(dbPtr, sql); |
| 1628 | if (!stmt.status()) { |
| 1629 | std::cerr << "failed to prepare insert object od table" << std::endl; |
| 1630 | return false; |
| 1631 | } |
| 1632 | sqlite3_exec(dbPtr, "begin;", 0, 0, 0); |
| 1633 | // int index = sqlitePackage::getLastInsertedRowid(dbPtr);; |
| 1634 | int index = 0; |
| 1635 | bool complete = true; |
| 1636 | for (auto iter = od_object.begin(); iter != od_object.end(); ++iter) { |
| 1637 | // sqlite3_bind_int(stmt, 0, index++); |
| 1638 | sqlite3_bind_int(stmt, 1, iter->object_pkid); |
| 1639 | sqlite3_bind_int(stmt, 2, iter->type); |
| 1640 | sqlite3_bind_int(stmt, 3, iter->subtype); |
| 1641 | sqlite3_bind_text(stmt, 4, iter->name, -1, SQLITE_TRANSIENT); |
| 1642 | sqlite3_bind_double(stmt, 5, iter->s); |
| 1643 | sqlite3_bind_double(stmt, 6, iter->t); |
| 1644 | sqlite3_bind_double(stmt, 7, iter->validlength); |
| 1645 | sqlite3_bind_int(stmt, 8, iter->orientation); |
| 1646 | sqlite3_bind_double(stmt, 9, iter->radius); |
| 1647 | sqlite3_bind_double(stmt, 10, iter->length); |
| 1648 | sqlite3_bind_double(stmt, 11, iter->width); |
| 1649 | sqlite3_bind_double(stmt, 12, iter->height); |
| 1650 | sqlite3_bind_double(stmt, 13, iter->hdg); |
| 1651 | sqlite3_bind_double(stmt, 14, iter->pitch); |
| 1652 | sqlite3_bind_double(stmt, 15, iter->roll); |
| 1653 | sqlite3_bind_double(stmt, 16, iter->zoffset); |
| 1654 | sqlite3_bind_int(stmt, 17, iter->roadid); |
| 1655 | sqlite3_bind_int(stmt, 18, iter->lanelinkid); |
| 1656 | sqlite3_bind_text(stmt, 19, iter->userdata, -1, SQLITE_TRANSIENT); |
| 1657 | sqlite3_bind_text(stmt, 20, iter->repeatdata, -1, SQLITE_TRANSIENT); |
| 1658 | sqlite3_bind_double(stmt, 21, iter->markWidth); |
| 1659 | sqlite3_bind_text(stmt, 22, iter->outlines, -1, SQLITE_TRANSIENT); |
| 1660 | int r = sqlite3_step(stmt); |
| 1661 | if (SQLITE_DONE != r) { |
| 1662 | std::cerr << "Insert OdObject Error, Name " << iter->name << ", Code " << r << std::endl; |
| 1663 | complete = false; |
| 1664 | } |
| 1665 | sqlite3_clear_bindings(stmt); |
| 1666 | sqlite3_reset(stmt); |
| 1667 | } |
| 1668 | sqlite3_exec(dbPtr, "commit;", 0, 0, 0); |
| 1669 | return complete; |
| 1670 | } |
| 1671 | |
| 1672 | bool sqliteOperation::updateRoad(const hadmap::tx_road_t& road) { |
| 1673 | char sql[512]; |
no test coverage detected