It sounds like you did an sqlite_bind_text instead of sqlite_bind_blob. So you'll get the correct # of bytes back but length() thinks its text so it truncates at NULL.
SQLite version 3.7.4 Enter ".help" for instructions Enter SQL statements terminated with a ";" sqlite> CREATE TABLE "message_revision" ( ...> "MessageRevisionId" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, ...> "MessageId" INTEGER NOT NULL REFERENCES "message" ("MessageId") ON DELETE CASCADE, ...> "CreatedTime" DATETIME NOT NULL, ...> "Author" INTEGER NOT NULL REFERENCES "user" ("UserId"), ...> "Subject" VARCHAR(255), ...> "Content" MEDIUMTEXT, ...> "HtmlContent" MEDIUMTEXT, ...> "Summary" VARCHAR(255), ...> "ModerationState" TINYINT NOT NULL DEFAULT 0, ...> "Draft" BOOLEAN NOT NULL DEFAULT FALSE, ...> "ContentType" VARCHAR(255), ...> "Data" BLOB); sqlite> insert into message_revision values( null, 0,0,0,'sub','cont','html','summary',0,0,'content',x'656500656565656667686970' ); sqlite> insert into message_revision values( null, 0,0,0,'sub','cont','html','summary',0,0,'content','656500656565656667686970' ); sqlite> select *,typeof(Data),length(Data) from message_revision; 1|0|0|0|sub|cont|html|summary|0|0|content|ee|blob|12 2|0|0|0|sub|cont|html|summary|0|0|content|656500656565656667686970|text|24 Michael D. Black Senior Scientist NG Information Systems Advanced Analytics Directorate ________________________________________ From: sqlite-users-boun...@sqlite.org [sqlite-users-boun...@sqlite.org] on behalf of Yves Goergen [nospam.l...@unclassified.de] Sent: Sunday, February 06, 2011 6:15 AM To: General Discussion of SQLite Database Subject: EXT :Re: [sqlite] LENGTH on a BLOB field stops at NUL byte On 06.02.2011 12:01 CE(S)T, Simon Davies wrote: > length() should return the number of bytes for a blob. > What does typeof() tell you about the data? It says "text". Now tested with SQLite 3.7.4, this is the only command line client I have here. Here's the statement how the table was created: > CREATE TABLE "message_revision" ( > "MessageRevisionId" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, > "MessageId" INTEGER NOT NULL REFERENCES "message" ("MessageId") ON > DELETE CASCADE, > "CreatedTime" DATETIME NOT NULL, > "Author" INTEGER NOT NULL REFERENCES "user" ("UserId"), > "Subject" VARCHAR(255), > "Content" MEDIUMTEXT, > "HtmlContent" MEDIUMTEXT, > "Summary" VARCHAR(255), > "ModerationState" TINYINT NOT NULL DEFAULT 0, > "Draft" BOOLEAN NOT NULL DEFAULT FALSE, > "ContentType" VARCHAR(255), > "Data" BLOB); The column in question is "Data". I can verify that the entire image file has been stored as it is entirely returned in a SELECT query and displayed in the web browser. -- Yves Goergen "LonelyPixel" <nospam.l...@unclassified.de> Visit my web laboratory at http://beta.unclassified.de _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users _______________________________________________ sqlite-users mailing list sqlite-users@sqlite.org http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users