Thanks, Jeremy,
Excellent advice, as usual.
Paul

Jeremy Evans wrote:
> On Nov 14, 5:59 pm, Paul F Fraser <[email protected]> wrote:
>   
>> DB.create_table? :fonts do
>>   primary_key :id
>>   String :name
>>   File :font_file
>> end
>>
>> class FontModel < Sequel::Model(:fonts)
>> end
>>
>> font = FontModel.new do |m|
>>  m.name = "A Font'
>>  file = file.open(filepath)
>>     
>
> I'm guessing you mean File.open here.
>
>   
>>  m.font_file =  file.to_s  # will not accept  file.to_sequel_blob
>>     
>
> That's because file is a File, not a String, and File#to_sequel_blob
> is not defined.  Since you are using models, it should due the blob
> typecasting in the setter, so you shouldn't need to call
> to_sequel_blob manually.
>
>   
>>  m.save
>> end
>>     
>
> I'd use the following code instead of the above, FWIW:
>
>  font = FontModel.create(:name=>"A Font",
>   :font_file=>File.read(filepath))
>
>
>   
>> -----------------------------
>> font = FontModel[1]
>>
>> puts  font.class     #=>  Sequel::SQL::Blob
>>
>> How do I retrieve the contents as a file?
>>     
>
> You can't.  Database blobs are returned as Sequel::SQL::Blob, which is
> a subclass of String.  Most databases don't support a File/IO-like
> interface (MSSQL 2008's FILESTREAM might, but Sequel doesn't support
> that).  Since the entire blob is returned when the database query is
> made, using an IO subclass instead of a String subclass wouldn't make
> sense.
>
> Jeremy
> >
>
>   


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"sequel-talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/sequel-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to