[pb][sql server] pb在資料庫中存取blob類型資料

來源:互聯網
上載者:User

一、首先要寫好兩個函數,分別是檔案的讀取與寫入:
參考 pb中讀寫檔案的函數:http://blog.csdn.net/xys_777/archive/2010/08/04/5787833.aspx

二、儲存檔案

 

li_value = GetFileOpenName("選擇檔案",ls_docname,ls_named)<br />IF li_value = 1 THEN<br />if f_readfile(lb_fj,ls_docname)=1 then<br />ll_picid=gf_getid('T_Picture') //這是一個得到新增id的函數<br />//需要先插入這條資料的其他資訊<br />INSERT INTO T_Svt_Picture ( PictureId,PicName,detaillogId )<br />VALUES ( :ll_picid,:ls_named, :ld_detaillogId);<br />if sqlca.sqlcode<0 then<br />rollback;<br />messagebox('系統提示','資料儲存失敗')<br />return<br />end if<br />//再用updateblob更新blob欄位<br />updateblob T_Picture set PicBlob=:lb_fj where pictureid=:ll_picid;<br />if sqlca.sqlcode<0 then<br />rollback;<br />messagebox('系統提示','儲存失敗')<br />return<br />else<br />commit;<br />end if<br />end if<br />end if</p><p>

三、開啟檔案

//用selectblob將blob類型資料賦值給blob變數 lb_fj<br />selectblob PicBlob into :lb_fj from T_Picture where pictureid=:ll_picid;<br />if sqlca.sqlcode<>0 then<br />messagebox('系統提示','資料讀取失敗')<br />return<br />end if<br />//需要將檔案重新在磁碟裡儲存出來,需要在之前存資料庫是記錄檔案名稱 dw_1.object.picname<br />ls_docname='c:/worktemp'<br />if not DirectoryExists(ls_docname) then CreateDirectory(ls_docname)<br />ls_docname=ls_docname+dw_1.object.picname[row]<br />if f_writefile(lb_fj,ls_docname)=1 then<br />//調用api開啟檔案<br />if ShellExecuteA(Handle(parent),ls_null,ls_docname,ls_null,ls_null, 1) > 32 then<br />return<br />else<br />messagebox('系統提示','系統開啟檔案出錯')<br />return<br />end if<br />end if</p><p>//api定義<br />Function long ShellExecuteA (ulong hwnd, string lpOperation, string lpFile,string lpParameters, string lpDirectory, long nShowCmd) library "shell32.dll"

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.