0

タイプ(画像)の列を持つテーブルに画像を挿入しようとしています。これが私が試したものです:

INSERT INTO tblDDPhotos(ID, img)
VALUES (1, SELECT * FROM
OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile)`

知りたかった、

  1. ブロブから画像を挿入する方法。
  2. 画像にアクセスして取得するにはどうすればよいですか。
  3. サーバーのフォルダーに画像を保存する場合と同様に、DBに画像を保存することの欠点は何ですか。
4

1 に答える 1

1

ステートメントにVALUESと のSELECTアプローチを混在させることはできません。どちらか一方を使用してください。ただし、それらを混在させることはできません。INSERT

したがって、これを行う1つの方法は、次を使用することです。

DECLARE @FileContents VARBINARY(MAX)

SELECT @FileContents = BulkColumn
FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB) as imagefile)

INSERT INTO tblDDPhotos(ID, img)
VALUES (1, @FileContents)

または、代替アプローチは次を使用することです。

INSERT INTO tblDDPhotos(ID, img)
   SELECT 1, BulkColumn
   FROM OPENROWSET(BULK 'blob:http%3A//localhost%3A64527/81655427-3653-427d-92bf-254cd2a2e647', SINGLE_BLOB)

どちらのアプローチが適しているかを選択してください。どちらも同じように機能します。

補足: ntexttext、およびimageデータ型は、SQL Server の将来のバージョンで削除される予定です。新しい開発作業でこれらのデータ型を使用することは避け、現在それらを使用しているアプリケーションを変更することを計画してください。nvarchar(max)varchar(max)、および をvarbinary(max)代わりに使用してください。

これについての詳細はこちら

于 2013-10-31T08:08:48.727 に答える