DB でドキュメント ファイルと写真ストアを varbinary(max) として更新する SQL UPDATE ステートメントを作成しました。最初に 、データ型 varchar から varbinary(max) への暗黙的な変換は許可されていないというエラーが表示されました。CONVERT 関数を使用してこのクエリを実行します
そこでコードを変更して、このようにしました。
try {
//SET Varbinary_Col = CAST(Varbinary_Content as VARBINARY)
query = "UPDATE tourClient SET DocumentFile= CONVERT(varbinary(max),'"+docFile+"'),Photo= CONVERT(varbinary(max),'"+person_image+"') WHERE Name= '" + combo_client.getSelectedItem() + "' ";
PreparedStatement stm = db.getconn().prepareStatement(query);
int val = stm.executeUpdate();
if (val > 0) {
JOptionPane.showMessageDialog(null, "Uploaded successfully!!!");
rs.next();
}
db.getconn().close();
} catch (Exception e) {
System.out.println(e);
}
上記のクエリを netbeans で実行すると、正常にアップロードされたことを示す Joption メッセージが表示されます。私はnetbeansに別のjframeを持っています。これには、すべてのドキュメントファイル、画像を選択し、それをjtableに表示するクエリがあります。jtable の行をクリックすると、画像がラベルに表示され、ドキュメントが開かれますが、開こうとすると、ファイルが壊れていると表示され、画像に対してアップロードした png が表示されません。
ステートメントを正しく書きましたか?変更しなければならないことはありますか?