タイトル : GetChunkとAppendChunkを扱うデータ型について 投稿日 : 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の使い方が悪いのかととも思いここに質問させていただきました。 よろしくおねがいいたします。 |