This is part of a larger application, but what I *think* is happening is using a table definition like
create table tester(id text collate nocase) and a prepared statement like insert into tester values(?) then calling bind something like this pseudocode sqlite3_bind_text(stmt, column, "1000000000000000000000000", len, SQLITE_TRANSIENT) converts the value to a textual scientific notation representation, like select typeof(id) from tester --> text select * from tester --> 1.0e+24 so it looks like the column affinity is text, but the original string has been destroyed. I know that the datatype page mentions that numerical data is converted to text form before being stored, so I'm guessing that the text is being identified as a number. >From poking about on the net, it seems like the viable options are to 1. use bind_blob 2. use bind_text but with some hack to the text so it's not identified as a number Is there any way to force the bind_text() to store the input text verbatim? Looking through the amalgamation, it looks like the coercion might be happening around sqlite3_value_numeric_type and applyNumericAffinity - might it a practical to make the numeric conversion fail if it doesn't round-trip to the original text? Or is that going to cause other problems? ---------------------------------------------------------------------- This message, and any attachments, is for the intended recipient(s) only, may contain information that is privileged, confidential and/or proprietary and subject to important terms and conditions available at http://www.bankofamerica.com/emaildisclaimer. If you are not the intended recipient, please delete this message. _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users