2011-12-16 103 views
3

新手在這裏!我目前正在使用Ruby on Rails創建一個應用程序。Rails與SQL Server 2008/2012 - FILESTREAM

這個特殊的應用程序使用內容的二進制數據。顯然,由於FILESTREAM功能,SQL Server是最好的選擇。從我從文檔中發現的內容來看,這基本上爲大於1mb的二進制對象創建了一個文件系統。

這樣說,我正在使用Ruby on Rails並準備設置activerecord-sqlserver-adapter,但我需要知道如何在使用活動記錄遷移設置數據庫時指定列來使用FILESTREAM ?我只需編輯列以接受SQL Server管理中的FILESTREAM? (這顯然是讓FILESTREAM在SQL Server中使用之後。)

所以我預測的設置是: 1.安裝SQL Server和所有支持組件 2.安裝了activerecord-SQLSERVER-adpater寶石 3.創建varbinary(max)數據庫列(用於二進制文件) - 在遷移中 4.在sql server中指定使用FILESTREAM的所述列

總而言之,如何配置指定FILESTREAM在創建數據庫中的列使用rails/ruby​​?

回答

2

不,這不是全部,每個有varbinary(max)列的表存儲爲FILESTREAM應該有一個rowguid類型的列。

這裏是我已經用了附件

CREATE TABLE [dbo].[Attachment](
    [Attachment_Id] [uniqueidentifier] ROWGUIDCOL NOT NULL, 
    [ContentLength] [int] NULL, 
    [ContentType] [nvarchar](100) NULL, 
    [Contents] [varbinary](max) FILESTREAM NULL, 
    [DateAdded] [datetime] NULL, 
    [FileName] [nvarchar](255) NULL, 
    [Title] [nvarchar](255) NULL, 
PRIMARY KEY CLUSTERED 
(
    [Attachment_Id] ASC 
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] FILESTREAM_ON [filestream] 
) ON [PRIMARY] FILESTREAM_ON [filestream] 
+0

嘿,感謝您的回答樣品,不過這是從SQL Server查詢的觀點。我將如何使用activerecord/rails設置它? – Jches 2011-12-23 02:46:13