Have you run "PRAGMA integrity_check;" from the command line shell against the 
same database and does it return rows or just throw the same exception?

---
The fact that there's a Highway to Hell but only a Stairway to Heaven says a 
lot about anticipated traffic volume.

>-----Original Message-----
>From: sqlite-users [mailto:sqlite-users-
>boun...@mailinglists.sqlite.org] On Behalf Of Roberts, Barry (FINTL)
>Sent: Tuesday, 24 October, 2017 09:04
>To: sqlite-users@mailinglists.sqlite.org
>Subject: [sqlite] C# pragma integrity_check call throwing exception
>
>Hi,
>
>I asked the following question a few weeks ago, but did not get any
>responses, hoping someone may have an idea.
>
>We are currently running System.Data.SQLite.dll 1.0.80.0 and would
>like to upgrade to a newer version. However there are a variety of
>issues we have run into, most of which I have now resolved, however
>one remains. Assume I have a database which is "malformed" due to
>rowid xxx missing from a table index. Using the 1.0.80.0 driver the
>following code would return the results from the pragma
>integrity_check call.
>
>        private static IEnumerable<string>
>IntegrityCheck(SQLiteConnection connection)
>        {
>            using (var command = new SQLiteCommand(connection))
>            {
>                command.CommandTimeout = 0;
>                command.CommandText = "pragma integrity_check";
>
>                using (var reader = command.ExecuteReader())
>                {
>                    while (reader.Read())
>                    {
>                        yield return reader.GetString(0);
>                    }
>                }
>            }
>        }
>
>Our system would get a list of the rowid problems allowing it to log
>them and inform the user. I am currently testing using the 1.0.105.1
>driver, however the ExecuteReader() call (above) throws an exception
>saying the database is malformed. That is not very helpful and
>effectively stops the system obtaining integrity check information.
>If I replace the integrity_check with quick_check it works and
>returns ok, so access to the file is ok, just some internal indexes
>are messed up. Is there any way to get the above working in the later
>drivers, or can someone tell me which driver update changed this
>behaviour?
>
>Kind Regards,
>Fugro Intersite.
>
>Barry Roberts.
>b.robe...@fugro.com<mailto:b.robe...@fugro.com> | www.fugro.com
>
>_______________________________________________
>sqlite-users mailing list
>sqlite-users@mailinglists.sqlite.org
>http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users



_______________________________________________
sqlite-users mailing list
sqlite-users@mailinglists.sqlite.org
http://mailinglists.sqlite.org/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to