SQLite Forum

How to retrieve the last encountered error
Login

How to retrieve the last encountered error

(1) By anonymous on 2020-12-08 09:58:28 [source]

When I call the sqlite3_exec function and encounter an error i.e. the result is not SQLITE.OK, what function will give me the description of the error? Is there one?

(2) By curmudgeon on 2020-12-08 10:45:27 in reply to 1 [link] [source]

https://sqlite.org/c3ref/errcode.html

(3) By anonymous on 2020-12-08 14:44:56 in reply to 2 [link] [source]

Thank you but I'm not having much luck with this.

To be explicit, I'm looking to retrieve errors such as this, as reported in the CLI

Error: table HIGHSCORES already exists

or

Error: no such table: nonexist

rather than as detailed in 4. Primary Result Code List

(4) By Stephan Beal (stephan) on 2020-12-08 14:52:03 in reply to 3 [link] [source]

To be explicit, I'm looking to retrieve errors such as this, as reported in the CLI

Did you take a look at sqlite3_errmsg(sqlite3*), described in the first answer's link?

The sqlite3_errmsg() and sqlite3_errmsg16() return English-language text that describes the error, ...

(8) By Warren Young (wyoung) on 2020-12-08 15:27:31 in reply to 4 [link] [source]

I've checked the code for shell.c, and it is indeed using that function to produce the errors the OP is expecting: [source].

Therefore, we have some sort of pilot error here, not a lack in SQLite.

(5) By curmudgeon on 2020-12-08 14:53:25 in reply to 3 [link] [source]

Does const char sqlite3_errmsg(sqlite3); (as listed on that link) not do what you want?

(6) By anonymous on 2020-12-08 15:00:15 in reply to 5 [link] [source]

Unfortunately not - Using C#, I get

threw an exception of type 'System.NullReferenceException'

which is

Message: "Object reference not set to an instance of an object."

(9) By Warren Young (wyoung) on 2020-12-08 15:28:44 in reply to 6 [link] [source]

C# null references have nothing to do with SQLite error messages. You've got a bug in your code.

(7) By anonymous on 2020-12-08 15:15:12 in reply to 5 [link] [source]

Am I, by chance, encountering issues described here?

(10) By Simon Slavin (slavin) on 2020-12-08 18:39:42 in reply to 7 [link] [source]

No. The error messages you listed, mentioning 'System.NullReferenceException' and "Object reference not set to an instance of an object." are errors from c#, the programming language you're using, not from SQLite. SQLite doesn't have exceptions or objects.

There's a good chance there's an error in your programming somewhere.

(11) By anonymous on 2020-12-08 21:29:02 in reply to 10 [link] [source]

Thanks;  I haven't (yet) found a way of handling this with C#

char **errmsg /* Error msg written here */

What should sqlite3_errstr(1) return? // 1 = SQLite_Error

I get 1642772381

How do I get something more descriptive, like "The SQLITE_ERROR result code is a generic error code that is used when no other more specific error code is available."?