tagCANDY CGI VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
VBレスキュー(花ちゃん) の Visual Basic 2010 用 掲示板(VB.NET 掲示板)
[ツリー表示へ]  [ワード検索]  [Home]

タイトル 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の使い方が悪いのかととも思いここに質問させていただきました。

よろしくおねがいいたします。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。