Using the latest SQLite3 on Windows, accessed from an ActiveX dll.
Come across a strange bug that I just can't unravel:

I have a 2 dimensional VB6 variant array that I am moving to a SQLite table.
This variant array is obtained from a .csv text file.

The first column of this variant array holds integer values and apparently
randomly
the bound values appear wrongly as -1, whereas it should be 1 or whatever
else integer
value. I am testing this on a variant array with some 100000 rows and the
great majority
of the values of the first column of this variant array appear wrongly as
-1, but other values
appear fine. I can see no pattern to this.

I am logging these integer values to be bound, just prior to the binding
and they are
indeed fine, so as expected.

These integer values are then bound like this:

sqlite3_bind_int lStatementHandle, ByVal c, ByVal CLng(vArray(r, c))

I also tried without the CLng conversion:

sqlite3_bind_int lStatementHandle, ByVal c + btLBAdd, ByVal vArray(r, c)

Then when I check these integer values after the binding like this:

      lPtr = sqlite3_expanded_sql(lStatementHandle)
      GetSQLFromStatementHandle = cConn.PointerToString(lPtr, CP_UTF8)
      sqlite3_free lPtr

I can see the wrongly bound -1 values.

This problem only occurs in the first column of this variant array, whereas
other integer
values in further columns of this array are bound all fine.

I can see that very likely this is a bug in my VB6 coding, but I just can't
find it and maybe
somebody has some bright idea as to what might be going on here.


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

Reply via email to