AccessのVBAで"添付ファイル型"のフィールドに格納されているイメージデータを
PostgreSQLの"bytea[]型"に格納したいのですが、うまくいきません。
格納方法が間違っているのでしょうか?
(PostgreSQL側のテキスト型や数値型のフィールドへのデータ更新については、確認できているので、
接続方法等は間違っていないと思うのですが...)
※PostgreSQLにレコードを追加し、フィールド名"イメージデータ"(bytea[]型)ヘイメージデータを格納しています。
※DAOを使用してもダメでした
Access Version:2016
PostgreSQL Version:9.1.3
Dim CN As Object
Dim RS As Object
Dim SQL As String
Dim ac_RS As DAO.Recordset
'PostgreSQLの接続
Set CN = CreateObject("ADODB.Connection")
CN.Open 接続文字列
Set RS = CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM PostgreSQL側のテーブル"
RS.Open SQL, CN, adOpenKeyset, adLockOptimistic
'アクセスのRecordsetオブジェクトを作成
Set ac_RS = CurrentDb.OpenRecordset("Access側のテーブル名")
'アクセス側テーブルのレコード数分ループ
Do Until ac_RS.EOF
'PostgreSQLにレコード追加
RS.AddNew
'添付ファイル型フィールド
Dim ac_RS2 As Recordset2
set ac_RS2 = ac_RS.Fields("イメージデータ").Value
'イメージデータを取り出す
Dim byteImage() As Byte
Dim nSize As Long
nSize = ac_RS2.Fields("FileData").fieldSize
byteImage() = ac_RS2.Fields("FileData").GetChunk(0, nSize)
'PostgreSQLのテーブル更新
RS.Fields("イメージデータ").AppendChunk byteImage() '← ここでエラー「このコンテキストで操作は許可されていません。」
RS.Update
ac_RS.MoveNext
Loop
'終了
RS.Close: Set RS = Nothing
CN.Close: Set CN = Nothing