Hello,
I'm learning Ruby and I'm trying to save to disk some content that is in
sql server in a column of type 'Image'.
Problem is that the column with the content always have the same
size(4096) whem I'm iterating through the results.
My code so far:
client = TinyTds::Client.new(:username => 'someuser', :password =>
'somepass', :dataserver => 'someserver', :database => 'somedb')
result = client.execute("SELECT top 5 Content,DirName,LeafName FROM
sometable where ListID='819B' AND Content is not null")
result.each do |row|
directory_name = File.join("d:" , row["DirName"])
FileUtils.mkdir_p(directory_name) unless File.exists?(directory_name)
filename = File.join(directory_name , row["LeafName"])
p row["Content"].length # Always returns 4096...
File.open(filename, "w") do |myfile|
myfile.write(row["Content"])
end
end
on 2012-12-21 18:42
on 2012-12-21 19:10
Subject: Tinytds - Save binary as file
Date: Sat 22 Dec 12 02:42:55AM +0900
Quoting Miguel Mendes (lists@ruby-forum.com):
> File.open(filename, "w") do |myfile|
If you want to write binary (i.e. unadulterated) content, you must add
a 'b', as follows:
File.open(filename, "wb") do |myfile|
Carlo
on 2012-12-22 14:36
On Fri, Dec 21, 2012 at 11:42 AM, Miguel Mendes <lists@ruby-forum.com> wrote: > client = TinyTds::Client.new(:username => 'someuser', :password => > p row["Content"].length # Always returns 4096... > > File.open(filename, "w") do |myfile| > myfile.write(row["Content"]) > end > end > > -- > Posted via http://www.ruby-forum.com/. > Can you show the table schema?
on 2012-12-26 11:00
"wb" didn't work. Here is the table schema CREATE TABLE [dbo].[Docs]( [Id] [uniqueidentifier] NOT NULL, [ListId] [uniqueidentifier] NOT NULL, [DirName] [nvarchar](256) NOT NULL, [LeafName] [nvarchar](128) NOT NULL, [Content] [image] NULL)
on 2013-02-02 04:54
See here http://msdn.microsoft.com/en-us/library/ms187365.aspx The default is 4Kb when no size parameter is specified Also see https://groups.google.com/forum/#!msg/rails-sqlser... seems there is a config file that can impact size of data returned
Please log in before posting. Registration is free and takes only a minute.
Existing account
(Switch to SSL-encrypted connection)
NEW: Do you have a Google/GoogleMail or Yahoo account? No registration required!
Log in with Google account | Log in with Yahoo account
Log in with Google account | Log in with Yahoo account
No account? Register here.
