On Wed, Jan 11, 2012 at 11:17 AM, John Elrick <[email protected]>wrote:
> I'm still debugging the issue I reported earlier concerning upgrading
> from 3.6.17 to 3.7.9. One solution we are examining would be to
> create a log of all SQL commands executed and then replay the log
> using the different versions. As an example, if I were to execute
> (psuedo-code)
>
> command := db.prepareExec('insert into foo values (:bar)');
>
> for i := 0 to 100 do
> begin
> command.bind(':bar', i);
> command.execute;
> end;
>
> the log would produce:
>
> insert into foo values(1);
> insert into foo values(2);
> ...
> insert into foo values(100);
>
> From my examination of Sqlite, there doesn't appear to be a built in
> mechanism for creating this type of log. Is this correct or am I
> missing something?
>
The sqlite3_trace() <http://www.sqlite.org/c3ref/profile.html> interface
will do this. You just have to supply it with a callback that will write
the text to a file.
In version 3.7.9, the sqlite3_trace() output has the bound values filled
in. In version 3.6.7, the parameter name is print instead. You probably
want to use 3.7.9, therefore, to create your log.
>
>
> --
> John Elrick
> Fenestra Technologies
> 540-868-1377
> _______________________________________________
> sqlite-users mailing list
> [email protected]
> http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users
>
--
D. Richard Hipp
[email protected]
_______________________________________________
sqlite-users mailing list
[email protected]
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users