DBMSとしてMicrosoft SQL Server 2012を使用しています。フットボールプレーヤーについての情報を含むデータベースがあります。各プレーヤーに写真があり、プレーヤーの写真を自分のコンピュータにエクスポートする必要があるので、TSQLを使ってプレーヤーの写真を書き出すことができるので、写真を書き出すためにアプリケーションのプログラミングや編集はできません。ここでストアドプロシージャを使用してSQL Serverからイメージをエクスポート
は、私がこれまでにやったことです:
MY SQLコード:
EXECます。sp_configure '高度な表示オプション'、1 GO RECONFIGURE GO EXEC ます。sp_configure 'xp_cmdshellを' 1 GO RECONFIGURE GO
EXEC master..xp_cmdshell 'mkdir C:\ ImagesFromSql'
EXECがmaster..xp_cmdshell 'BCP " [FootballTeam]から選択した写真を[DBO] [プレーヤー]。。" queryout "C:\ ImagesFromSql \ TestImage.jpg" -T -N'
として私のフォルダImagesFromSqlは "C:\"上に作成されていますが、1つの写真はそこに保存されていますが、その写真は361MBと大きいので、おそらくデータベースに含まれるすべての写真のサイズですか? そして、私はこの場合、データベースからすべてのイメージを1つではなくどのようにエクスポートすることができ、その名前を設定することができるのだろうかと思います。たとえば、ImageNameをPlayerIDとして設定することができます。たとえば、1.jpg、2.jpg、3.jpg .... 650.jpg ...
後H.Fadlallahが、これは私が得るものであるいくつかの答えを示唆し@:それは、プレビュー画像に不可能..です:)再び
後に@ H.Fadlallahヘルプ私はこのクエリを実行しました:
DECLARE @ID as int [FootballTeam]の中から選択PlayerID FOR VARCHARとして@SQL(4000)
DECLAREのCSRカーソルを宣言する。[DBO] [プレーヤー]
OPENのCSR
は@ID
INTO NEXT CSRからのフェッチWHILE @@ FETCH_STATUS = 0は、VARCHARとして+ CAST(@ID(10) ' "[FootballTeam]。[DBO] [プレーヤー] PlayerID =から選択した写真" BCP'
SETの@SQL =をBEGIN )+ 'クエリアウト "C:\ ImagesFromSql \ '+ CAST(varchar(10)としての@ID)+' .jpg" -T -f C:\ ImagesFromSql \ formatfile.fmt '
EXECマスター..xp_cmdshellを@SQL
が
END
今、私は空の画像を取得しています
しかし、CSRのDEALLOCATEのCSRは、おそらく私が何かを逃した
CLOSE ...(ところで@ID INTO CSRから次のFETCH
imageと同じフォルダにformatfile.fmtファイルが作成され、H.Fadallahが別の投稿で私に提案したように、Photoの属性のバイナリ値を8から0に変更しました。
これは非常に有用な質問ですが、私は、誰かがあなたが正しい答えを与えることを願っています!この質問にも私は答えが必要です! –