Saving gzipped string into Sqlite3 via Rails throws unrecognizedtoken error

P

pablitoman

Not sure if this belongs in the rails forum or here (it's a little of
both)...

I'm using rails 2.3 and I'm trying to compress (gzip) text that I'd
like to save using ActiveRecord into a sqlite database.

However, the compressed text isn't being saved b/c I get this type of
error: SQLite3::SQLException: unrecognized token: "'x##UËŽ#7

Any thoughts on what I can do to avoid this error?

should I compress the text in some other fashion?
should I save the data using some other method(s)?
TIA!!!
Relevant code is below.

###########################################
# compress my text
require 'zlib'
defl = Zlib::Deflate
test_string = "<h3>some text</h3>some additional text<p>here's some
more text</p>"
compressed_string = defl.deflate(test_string)
=> "x\234\263\3110\266+\316\317MU(I
\255(\261\321\207\361\022SR2K2\363\363\022s \022\005v\031\251E
\251\352\305\n`\331\334\374\"\230\206\002;\000\0225\027\222"

ModelClass.new:)attribute1 => compressed_string).save
ActiveRecord::StatementInvalid: SQLite3::SQLException: unrecognized
token: "'x#####+##MU(I#(#ч####2K2#### v#E####
################################################
 
J

Jonathan Nielsen

Not sure if this belongs in the rails forum or here (it's a little of
both)...

=C2=A0I'm using rails 2.3 and I'm trying to compress (gzip) text that I'd
like to save using ActiveRecord into a sqlite database.

However, the compressed text isn't being saved b/c I get this type of
error: SQLite3::SQLException: unrecognized token: "'x##U=CB=8E#7

Any thoughts on what I can do to avoid this error?

should I compress the text in some other fashion?
should I save the data using some other method(s)?
TIA!!!

I have no idea if this is what is going on because I haven't worked
much with SQLite, but are you saving to a TEXT field or a BLOB field?
If the field is TEXT, try making it a BLOB and see if that works.

-Jonathan Nielsen
 
P

pablitoman

I have no idea if this is what is going on because I haven't worked
much with SQLite, but are you saving to a TEXT field or a BLOB field?
If the field is TEXT, try making it a BLOB and see if that works.

-Jonathan Nielsen

Nope. didn't work (thank you, though for the suggestion), but I just
figured out a "workaround"

if you call "dump" on the zipped string, dump will escape everything
problematic.

eval will "unescape" and give you back your zipped string
 
P

pablitoman

I have no idea if this is what is going on because I haven't worked
much with SQLite, but are you saving to a TEXT field or a BLOB field?
If the field is TEXT, try making it a BLOB and see if that works.

-Jonathan Nielsen

Sorry, you were right. I had a bug in my code when I was testing your
suggestion. converting the columns to blob worked perfectly.

TKS!
 

Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,062
Latest member
OrderKetozenseACV

Latest Threads

Top