2017-04-20 14 views
0

Visual Studio SQL ServerデータベースプロジェクトとImagesテーブルがあります。このイメージは、空のイメージを持つすべてのエンティティで使用されるため、PostDeploymentスクリプトにデフォルトイメージを挿入する必要があります。この画像をプロジェクトに保存するにはどうしたらいいですか?また、スクリプトでその画像にアクセスする方法は?Visual StudioデータベースプロジェクトでPostDeploymentスクリプトを使用して画像を挿入

この画像をデータベースプロジェクトに挿入するのは良い方法ですか?私はWindowsServiceプロジェクトと、エンティティフレームワークを持つASP.NET MVCプロジェクトを持っています。この2つのプロジェクトのそれぞれで何らかの初期検証でこのイメージを挿入する必要がありますか?

答えて

2

これを行うにはいくつかの方法があります。

次のようなものを使用してファイルから画像を挿入することができ、テーブル

create table testImage 
(id int, 
myImage varbinary(max)); 

を考える:

INSERT INTO testImage (id, myImage) 
SELECT 1, bulkcolumn 
FROM openrowset(BULK 'D:\x\dZLx1.png', single_blob) as myImage 

潜在的な頭痛のカップルがここにありますが、あなたがパスを追跡する必要があります何らかの形であなたのプロジェクトのイメージに、そして、私は、とにかくOPENROWSETが動作しないいくつかのセキュリティ関連のシナリオがあると思います。以下のよう

このような

IF NOT EXISTS (SELECT * FROM testIMAGE where ID = 2) 
BEGIN 
INSERT INTO testImage VALUES 
(2,0x89504E470D0A1A0.....) 
END 

https://gist.github.com/gavincampbell/a25431dffd3555563a052c297a32415eここではフルスクリプト)として、INSERT文で使用するために再び値出SELECT、その後、デスクトップに一度これを行うには、より信頼性の高いかもしれませんこれを試してみると、結果の文字列はとなり、長さはになります。これを別のスクリプトに入れて、:rというメインの展開後スクリプトから参照することをお勧めします。また、バイナリ "文字列"については引用符を必要としないことに注意してください。

関連する問題