查看oracle帮助,关于dbms_lob包的介绍

解决方案 »

  1.   

    在oracle里用long row存图片
    以vb为例子:
    Public Function MyFc_PicSave()
    '**********************向数据库中存储图片
    Dim rs As New ADODB.Recordset
        Dim rs As New ADODB.Recordset
        Dim Rss As New ADODB.Stream
        rs.Open "SELECT * FROM TABLE1", GB_Cn, adOpenStatic, adLockOptimistic
        Rss.Type = adTypeBinary
        Rss.Open
        Rss.LoadFromFile "D:\fff\groupH.ico"
        rs.AddNew
            rs.Fields("a") = "PICTURE"
            rs.Fields("B") = Rss.Read 'LoadPicture("D:\fff\groupH.ico")
        rs.Update
    End FunctionPublic Function MyFc_PicLoad()
    '**********************从数据库中读取图片
        Dim My_PicLoadRs As New ADODB.Recordset
        My_PicLoadRs.Open "SELECT * FROM TABLE1", GB_Cn, adOpenStatic, adLockOptimistic
        Rss.Open
        If Not rs.EOF Then
            Set Picture1.DataSource = My_PicLoadRs
            Picture1.DataField = My_PicLoadRs!B.Name
        End If
        rs.Close
    End Function
      

  2.   

    选择图片以及存储图片:
    string ls_path,ls_name
    long ret,loops,ll_filenum,flen,ll_readfile
    blob lb_pic,b
    int i,li_id
    li_id=integer(trim(sle_1.text))
    ret=getfileopenname("选择图片",ls_path,ls_name,"aaaa","图片文件(bmp),*.bmp,图片文件(jpg),*.jpg,图片文件(jpeg),*.jpeg")
    if ret <> 1 then return
    flen=filelength(ls_path)
    messagebox("",flen)
    p_1.picturename=ls_path
    ll_filenum=fileopen(ls_path,streammode!,read!,lockread!)
    if flen > 32765 then
    if mod(flen,32765)= 0 then
    loops=flen/32765
    else
    loops=flen/32765 + 1
    end if
    else
    loops= 1
    end if
    lb_pic=blob("")
    for i =1 to loops
     ll_readfile=fileread(ll_filenum,b)
     lb_pic=lb_pic + b
    next
    fileclose(ll_filenum)
    ole_1.insertfile(ls_name)
    updateblob t_picc set pic= :lb_pic where id=:li_id;
    commit;从数据库中取图片:
    blob lb_pic
    messagebox("",integer(sle_1.text))
    int li_id
    li_id=integer(sle_1.text)
    selectblob pic into :lb_pic from t_picc where id=:li_id; 
    if sqlca.sqlcode <> - 1 then 
       if len(lb_pic)> 0 then
    p_1.setpicture(lb_pic)
    end if
    else
    messagebox("","")
    p_1.picturename=""
    end if
    这样就可以了!
    在我的机上完全能够运行!