画像を表示するには?


イ寺  2004-11-16 02:00:11  No: 117601

VB6.0  Oracle8iを使用しております
以下のコードでOracle  

Dim pic(3) = Picture1  
  
  For i = 1 To 3
    code = CStr(i)
    
    Set pic(i) = Picture1
    strSQL = "SELECT PICTURE FROM etc where sprno = 'AAAAAAAAAA' and no = " & code
    Set objOraDyn = OraDB.CreateDynaset(strSQL, ORADYN_DEFAULT)
    Set objOraBlb = objOraDyn.Fields(0).Value
    objOraBlb.CopyToFile pic(i).Picture
    Set objOraBlb = Nothing
    Set objOraDyn = Nothing
  Next


イ寺  2004-11-16 02:09:02  No: 117602

すいません、間違えて送信してしまいました。続きを書きます

    Set objOraBlb = Nothing
    Set objOraDyn = Nothing
  Next
  Picture1.Picture = LoadPicture(pic(1).Picture)※1

Oracleより画像データを持ってきて表示するプログラムを書いたのですが
上手く動作しません。
不具合:
・1枚目の画像のバイナリデータ?が必ず0になっている
・2,3枚目の画像のバイナリデータ?が同じ値になる
・プログラムを実行すると、プログラムがあるフォルダに画像ファイルのようなものが作成される
・※1で1枚目の画像を表示しているのに、3枚目の画像が表示されてしまう。

objOraBlb.CopyToFile pic(i).Picture←この部分がおかしいとは思うのですが
どのように解決して良いのかが分かりません。
どなたかお力添えをお願い致します。


LESIA  2004-11-16 02:33:49  No: 117603

画像表示の前に
Dim pic(3) = Picture1  
で、コンパイルエラーになると思うのですが・・・

Dim pic(3) As Picture
の間違いですか?


イ寺  2004-11-16 02:40:39  No: 117604

すいません、記述ミスです・・・

×Dim pic(3) = Picture1

○Dim pic(3) As PictureBox

失礼致しました。


LESIA  2004-11-16 03:05:55  No: 117605

LoadPicture関数はファイル名を指定するので、
Set Picture1.Picture = pic(1).Picture
でいいのでは?


イ寺  2004-11-16 03:40:48  No: 117606

LESIAさん、ご返答ありがとうございます。

>LoadPicture関数はファイル名を指定するので
>Set Picture1.Picture = pic(1).Picture
これで何処がおかしいのか分かったような気がします
教えていただいた、Set Picture1.Picture = pic(1).Pictureでは画像は表示されませんでした。
LoadPictureの場合は表示されます(3枚目ですが)
変数に画像データが格納されていないということですね
objOraBlb.CopyToFile pic(i).Picture

CopyToFileはファイルに書き込むメソッドのようなので
変数に格納できないのは当たり前ですよね・・・
フォルダに画像ファイルが作成されるのも、違った画像を取ってきてしまうのも
全てこれの所為な気がします・・・

しかし、変数に入れるにはどうしたら良いのでしょうか・・
いろいろ試行錯誤しております;


イ寺  2004-11-17 01:03:09  No: 117607

度々申し訳ありません
泥沼に嵌ってしまったようです・・

変数に格納することはできました
Dim red As Variant
Dim buffer As Variant
red = objOraBlb.Read(buffer)
Msgbox red
上記のコードで確認してみましたが、redの中に画像データが収まっているようです
ヘルプに載っていたのを丸写ししただけなんですが。。(このくらいの事にも気づかないとはお恥ずかしい限りです;
redの値をどうにかしてPicture.Pictureに入れたいのですが
上手くいきません
半日悩んでこの程度で非常に情けないのですが
どなたかお助けください


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加