前一篇文章《分享製作精良的知識管理系統 部落格備份程式 Site Rebuild》已經提到如何使用Site Rebuild來下載您所喜歡的部落格文章,但是還不能實現把下載的檔案匯入進資料庫中,無法實現線上瀏覽伺服器中的文檔資料。這一篇文章則協助您建立文檔資料庫,現部落格文章的的下載,儲存和瀏覽。
開啟Data Loader程式,執行Setting程式,開啟的介面效果如下
點擊ConnectionString後面的按鈕,填寫正確的資料庫配置,如下所示
如所示,點擊OK,返回主程式表單。
開啟SQL Server資料庫管理程式,新建立一個名稱為Document的資料庫,運行下面的SQL 指令碼以建立表結構
/****** 對象: Table [dbo].[CATEGORY] 指令碼日期: 11/04/2011 10:27:21 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[CATEGORY]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [NAME] [nvarchar](200) NULL, CONSTRAINT [PK_CATEGORY] PRIMARY KEY CLUSTERED ( [RECNUM] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]/****** 對象: Table [dbo].[DOCUMENT] 指令碼日期: 11/04/2011 16:46:37 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[DOCUMENT]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [SUBJECT] [nvarchar](2000) NULL, [BODY_TYPE] [nvarchar](50) NULL, [BODY] [ntext] NULL, [CREATE_DATE] [datetime] NULL, [CATEGORY] [int] NULL, [CREATE_BY] [nvarchar](50) NULL, [COMPUTER] [nvarchar](200) NULL, [PATH] [nvarchar](2000) NULL, CONSTRAINT [PK_DOCUMENT] PRIMARY KEY CLUSTERED ( [RECNUM] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]/****** Object: Table [dbo].[SETTINGS] Script Date: 11/07/2011 00:04:28 ******/SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE TABLE [dbo].[SETTINGS]( [RECNUM] [int] IDENTITY(1,1) NOT NULL, [DOWNLOADED_PATH] [nvarchar](800) NULL, [CONNECTION_STRING] [nvarchar](800) NULL, [FAILED_CLEANUP_FILE] [nvarchar](400) NULL, CONSTRAINT [PK_SETTINGS] PRIMARY KEY CLUSTERED ( [RECNUM] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GO
INSERT dbo.SETTINGS ( DOWNLOADED_PATH , CONNECTION_STRING , FAILED_CLEANUP_FILE )VALUES ( 'G:\Document', -- DOWNLOADED_PATH - nvarchar(800) NULL , -- CONNECTION_STRING - nvarchar(800) NULL -- FAILED_CLEANUP_FILE - nvarchar(400) )
最後一句的指令碼,是為了建立配置資料選項。再次開啟Setting程式,會顯示出這個表的內容。
這就是所需要做的所有動作,按照前一篇文章的介紹,你可以很容易的達到下面的效果
中的文章取自TerryLee的設計模式系列,成一個體系,放在一起閱讀,很方便。
請到epn.codeplec.com(http://epn.codeplex.com/releases/view/68647)中下載最新的Data Loader程式,以體驗離線閱讀部落格文章。所有的文章和資料文檔都在您自己的電腦中,您可以對它進行編輯,加工,提煉,學習。
到目前為止,Data Loader還需要改善的地方
1 通常一篇文章中會帶有一小段代碼下載,自動下載文檔的同時,也希望可以下載到它的附件。
2 增強搜尋能力,建立新的Index Builder程式,以適應在海量的文檔資料庫中搜尋您需要的文檔。
3 文檔的下載,匯入,需要增加進度條(Progress Bar)以顯示目前狀態,這樣介面會友好一些。
4 在分析,下載和匯入各個模組中,增加多執行緒能力,以提高處理速度。
5 增加新的應用,比如PPT下載,以搜尋好的PPT資料資料。Image Download是用於下載網站中的圖片,比如,經常看到一些做的非常好的介面,於是就想到這個批量方式來擷取這些資料,以集中研究UI設計。
6 壓縮與解壓縮處理。相同內容的文章,RTF格式一般是DOC格式三到四倍的尺寸大小,導致RTF格式比較消耗硬碟空間。以我的本機為例,2723個DOC文檔,一共是745MB,而RTF格式則達到5G,存到資料庫中,資料庫的尺寸增加達到8G左右。需要對文檔作壓縮處理,處理思路是使用我們熟悉的ICSharpCode.SharpZipLib.dll和zip格式。
希望對你有協助,歡迎提出寶貴意見。