| 38 | } |
| 39 | |
| 40 | soci_error::error_category sqlite3_soci_error::get_error_category() const |
| 41 | { |
| 42 | switch ( result() ) |
| 43 | { |
| 44 | case SQLITE_OK: |
| 45 | case SQLITE_ROW: |
| 46 | case SQLITE_DONE: |
| 47 | // These are not errors at all and should never be used here. |
| 48 | return soci_error::unknown; |
| 49 | |
| 50 | case SQLITE_ERROR: |
| 51 | case SQLITE_INTERNAL: |
| 52 | case SQLITE_ABORT: |
| 53 | case SQLITE_BUSY: |
| 54 | case SQLITE_LOCKED: |
| 55 | case SQLITE_NOMEM: |
| 56 | case SQLITE_INTERRUPT: |
| 57 | case SQLITE_IOERR: |
| 58 | case SQLITE_CORRUPT: |
| 59 | case SQLITE_NOTFOUND: |
| 60 | case SQLITE_FULL: |
| 61 | case SQLITE_PROTOCOL: |
| 62 | case SQLITE_SCHEMA: |
| 63 | case SQLITE_NOLFS: |
| 64 | return soci_error::system_error; |
| 65 | |
| 66 | case SQLITE_PERM: |
| 67 | case SQLITE_READONLY: |
| 68 | case SQLITE_AUTH: |
| 69 | return soci_error::no_privilege; |
| 70 | |
| 71 | case SQLITE_CANTOPEN: |
| 72 | case SQLITE_NOTADB: |
| 73 | return soci_error::connection_error; |
| 74 | |
| 75 | case SQLITE_TOOBIG: |
| 76 | case SQLITE_CONSTRAINT: |
| 77 | case SQLITE_MISMATCH: |
| 78 | return soci_error::constraint_violation; |
| 79 | |
| 80 | case SQLITE_MISUSE: |
| 81 | case SQLITE_RANGE: |
| 82 | return soci_error::invalid_statement; |
| 83 | |
| 84 | case SQLITE_EMPTY: |
| 85 | case SQLITE_FORMAT: |
| 86 | case SQLITE_NOTICE: |
| 87 | case SQLITE_WARNING: |
| 88 | // These result codes are either unused or not used as errors, according |
| 89 | // to the SQLite documentation. |
| 90 | return soci_error::unknown; |
| 91 | } |
| 92 | |
| 93 | // Unknown SQLite error code? |
| 94 | return soci_error::unknown; |
| 95 | } |
| 96 | |
| 97 | int sqlite3_soci_error::result() const |
nothing calls this directly
no outgoing calls
no test coverage detected