タイトル | : GetChunkとAppendChunkを扱うデータ型について |
記事No | : 11246 |
投稿日 | : 2014/03/19(Wed) 08:49 |
投稿者 | : カルス |
いつもお世話になっております。 アクセスのOLEオブジェクト型フィールドに画像データを書き込んだり読み込んだりすることで悩んでおります。
Dim data() As Byte = File.ReadAllBytes(OpenFileDialog1.FileName) ' 読み込み
Dim cnn As ADODB.Connection Dim rsSyashin As ADODB.Recordset Dim strSQL As String
cnn = New ADODB.Connection rsSyashin = New ADODB.Recordset cnn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "写真.mdb" + ";", "", "", 0) cnn.CursorLocation = ADODB.CursorLocationEnum.adUseClient strSQL = "SELECT * FROM テーブル1" rsSyashin.Open(strSQL, cnn, ADODB.CursorTypeEnum.adOpenUnspecified, ADODB.LockTypeEnum.adLockOptimistic, 1)
rsSyashin.AddNew() rsSyashin.Fields("写真").AppendChunk(data) rsSyashin.Update()
rsSyashin.Close() cnn.Close()
これでどうやら画像ファイルがフィールドに書き込まれたようなのですが・・・
Dim cnn As ADODB.Connection Dim rsSyashin As ADODB.Recordset Dim strSQL As String
cnn = New ADODB.Connection rsSyashin = New ADODB.Recordset cnn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "写真.mdb" + ";", "", "", 0) cnn.CursorLocation = ADODB.CursorLocationEnum.adUseClient strSQL = "SELECT * FROM テーブル1" rsSyashin.Open(strSQL, cnn, ADODB.CursorTypeEnum.adOpenUnspecified, ADODB.LockTypeEnum.adLockOptimistic, 1)
Dim lngLogoSize As Long ' サイズ lngLogoSize = rsSyashin.Fields("写真").ActualSize Dim oObj As Object = rsSyashin.Fields("写真").GetChunk(CInt(lngLogoSize))
rsSyashin.Close() cnn.Close()
これでOLEオブジェクト型からデータが取得できたようです。
悩んでいるのはObject型からどうやって画像ファイルに書き出そうかと。 AppendChunkはByte型を読み込んでいるので GetChunkでできた型をなんとかByte型にできたらいいのですが Object型だとどうにも変換できずに悩んでいます。
AppendChunkとGetChunkの使い方が悪いのかととも思いここに質問させていただきました。
よろしくおねがいいたします。
|