導航:首頁 > 文件類型 > pb中嵌入word文件

pb中嵌入word文件

發布時間:2024-12-22 01:01:42

❶ PB中想要上傳一個word文檔或excel文檔入資料庫,用blob欄位。有高手給段代碼

很久沒用過PB了,網上找了一篇,大致看了一下,應該沒什麼問題
--轉自51CTO論壇

在PowerBuilder裡面操作BLOB數據地靈活技術
PowerBuilder提供的BLOB(Binary Large Object)數據類型可以用來處理大型數據,包括圖像、大文本、Word文檔、二進制文件和多媒體等各種數據,它的長度可以是0~2GB位元組,我們利用BLOB類型的變數可以將數據傳遞給資料庫以大欄位方式存儲。但是用通常的數據窗口技術無法將BLOB類型數據加入到資料庫中,也不能將資料庫中相應欄位的數據提取出來,即使在程序中直接使用UPDATE和SELECT等SQL語句也是無法對BLOB類型數據進行操作的。下面筆者將介紹在PowerBuilder 7.0中操作BLOB類型數據的技巧。
程序設計原理
在PB中實現BLOB類型數據的入庫和查詢,主要要用到兩條特殊的SQL命令——UPDATEBLOB和SELECTBLOB,首先定位要進行操作的記錄,然後使用UPDATEBLOB命令就可以將BLOB類型變數中存放的數據傳遞給資料庫,而使用SELECTBLOB則是將指定記錄中的大欄位數據傳遞給BLOB變數。
使用BLOB類型變數獲取外界文件的數據內容,還必須藉助於PB提供的可視化OLE控制對象,通過它可以將指定的文件內容顯示成相應的對象(如BMP圖片),雙擊它就可以激活相應的OLE伺服器應用程序,來編輯修改對象的內容,同時也可以讀取對象的數據內容(利用OLE控制項的ObjectData屬性),給BLOB類型變數賦值。
下面結合一個簡單的程序實例,講述如何處理BLOB數據類型。在這個例子中,BMP圖片將作為一個大欄位存儲在資料庫中。我們選擇Microsoft Access 2000作為後台資料庫,它的欄位類型中包含「OLE對象」類型(如果選擇MS SQL Server作為資料庫伺服器,可以使用TEXT或IMAGE類型欄位存放大欄位數據),這樣就為管理多媒體數據、大文件和圖片提供了支持。
操作BLOB欄位的實現過程
我們在Access中創建一個新的資料庫文件,文件名是bmp.mdb,在其中定義BMP圖片數據表bmptable如下:
各欄位的其它設置(如欄位寬度等),均採用預設形式即可。

編程前還需要做的一步准備工作是在操作系統的ODBC配置中建立指向bmp.mdb資料庫的連接,名稱定為bmptable。
下面的程序片段實現了資料庫的連接,圖片的插入、更新、刪除和查詢。考慮文章的篇幅,本文只列出與主題相關的程序源碼。
1. 連接Access資料庫

SQLCA.DBMS = "ODBC"

// SQLCA為全局transaction事務變數

SQLCA.AutoCommit = False

SQLCA.DBParm = "Connectstring='DSN=bmptable;UID=WD='"

CONNECT USING SQLCA;

If SQLCA. SQLCode <> 0 Then

MessageBox ("資料庫錯誤", "連接失敗!")

Halt close;

End If

2. 將BMP圖片存入資料庫

integer bmpno,icount

//變數bmpno存放給定的圖片編號

string filepath,filename

blob blb_tmp

//…此處對圖片編號bmpno賦值,例如bmpno=101;可以通過程序實現為彈出對話框窗口提供一個圖片編號

//查詢指定的圖片編號是否已經存在

icount=0

SELECT COUNT() INTO :icount

FROM bmptable

WHERE bmptable.bmpno=:bmpno

USING SQLCA; //:bmpno為給定的圖片編號

if icount>0 then

MessageBox("查詢結果",string(bmpno)+" 號圖片已經存在,請輸入一個新的圖片編號")

return

end if

//在OLE控制對象ole_1中插入BMP圖片文件

GetFileOpenName("請選擇一個需要插入的BMP圖片文件",filepath,filename,"BMP","BMP圖片文件(.BMP),.BMP")

If Len(filepath)=0 Then

Return

End If

If ole_1.InsertFile(filepath)<>0 Then //OLE錯誤

Return

End If

//新圖片入庫

string sql

sql= "INSERT INTO bmptable (bmpno,bmpdata,bmpname) &&

VALUES ("&&

+string(bmpno)+",'','"&&

+filename+"')"

EXECUTE IMMEDIATE :sql;

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務

Else

MessageBox("資料庫錯誤","插入失敗")

ROLLBACK USING SQLCA;

//事務回滾

Return

End If

Blb_tmp=ole_1.ObjectData

UPDATEBLOB bmptable SET bmpdata=:blb_tmp

WHERE bmptable.bmpno=:bmpno

USING SQLCA; //更新存放圖片的欄位

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務

MessageBox("插入成功","圖片入庫成功")

Else

MessageBox("資料庫錯誤","更新圖片失敗")

ROLLBACK USING SQLCA;

//事務回滾

Return

End If

3. 從資料庫中刪除BMP圖片

UPDATE bmptable SET bmpdata=''

WHERE bmptable.bmpno=:bmpno

USING SQLCA;

//bmpno為要刪除的圖片編號

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務

Else

MessageBox("資料庫錯誤","更新失敗")

ROLLBACK USING SQLCA;

//事務回滾

Return

End If

DELETE FROM bmptable

WHERE bmptable.bmpno=:bmpno

USING SQLCA;

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務

MessageBox("刪除成功","圖片刪除成功")

Else

MessageBox("資料庫錯誤","刪除失敗")

ROLLBACK USING SQLCA;

//事務回滾

Return

End If

4. 按圖片編號查詢圖片信息

//需要提供一個圖片編號存放在變數bmpno中

SetNull(blb_tmp)

SELECTBLOB bmptable.bmpdata INTO :blb_tmp

FROM bmptable

WHERE bmptable.bmpno=:bmpno

USING SQLCA;

If Not IsNull(blb_tmp) Then

ole_1.ObjectData=blb_tmp

//雙擊OLE控制喚醒OLE伺服器即可編輯圖片

End If

使用PB編程時,每次對資料庫進行操作後要注意檢查返回結果,以保證程序的可靠性。以上程序只是對操作BLOB數據類型的關鍵技術進行探討,通過畫板設計相應的用戶界面,即可形成一個完整的基於Client/Server結構的資料庫應用程序。

❷ 求PB通過OLE來顯示WORD文檔的方法

1、不用ole直接用word嵌入到程序窗口中,需要用到幾個apiShellExecute函數原型及參數含義如下:
ShellExecute(
HWND hwnd, //父窗口句柄 (如:NULL,Handle等)
LPCSTR lpOperation, //操作類型 (如:"open")*要加英文雙引號
LPCSTR lpFile, //要進行操作的文件或路徑
LPCSTR lpParameters, //當lpOperation為「explore」時指定要傳遞的參數,通常設為NULL
LPCSTR lpDirectory, //指定默認目錄,通常設為NULL
INT nShowCmd //文件打開的方式,以通常方式還是最大化或最小化顯示,一般為SW_SHOWNORMAL
)
2、用pb中word的函數操作word文檔,可以參考olebrowser裡面的函數說明,pb裡面就可以查看的 來這里看看吧,有點用的,pb嵌入word的http://hi..com/pbzzfbbs/blog/item/1b8614354efeda3d5ab5f57e.html

❸ 在pb里如何將數據寫到word文件里

可以用ole連接,也可以用ntko office文檔控制項,使用起來都不難,需要示例可以聯系我。

❹ PB中如何讀取本地中word文檔中內容

可以用vba錄一段,看一下怎麼樣操作word中內容,然後用ole的方法,模擬vba的操作,把內容復制出來。
另外,也可以把word文檔存為純文本文件,再用word對這 個純文本文件進行操作。
具體的就需要自己試一下了。

❺ pb怎麼通過OLE來顯示word文檔

通過函數嗎?讀出來之後要求是只讀的
高手快來指教啊
------解決方案--------------------------------------------------------
你的word文檔專是存放在資料庫表中的嗎?屬在窗口中加ole的方式我曾用過,不太理想,要寫些東西,並且打開後也不是很理想。
建議你用dw中的ole database blob,這個比較好用。在數據窗口中可以只顯示一個類似按鈕的東西,用戶只要雙擊它,即可打開已經存放的文檔。在數據窗口中配置它也比較直觀簡單。

閱讀全文

與pb中嵌入word文件相關的資料

熱點內容
配音試音文件擴展名mp3格式 瀏覽:523
安卓系統鎖屏密碼文件夾里 瀏覽:478
win8系統桌面文件 瀏覽:300
升級到win10後刪除 瀏覽:17
linuxtotalcommander 瀏覽:165
傳票翻打在電腦上下什麼app 瀏覽:39
db2查看資料庫字元集 瀏覽:449
小米私密文件移出後找不到 瀏覽:775
紅底白色的心是什麼app的標志 瀏覽:163
小冤家APP角色怎麼變回家長 瀏覽:822
夢幻西遊合寵模擬器網站是什麼 瀏覽:420
諾基亞930最新版本 瀏覽:201
ps製作主kv文件過大 瀏覽:884
車端面如何編程 瀏覽:279
win10u盤備份時間長 瀏覽:617
文件夾怎麼轉換為pdf 瀏覽:502
2008打開登錄密碼忘記了 瀏覽:771
蘋果7如何授權應用程序 瀏覽:899
怎樣把舊的文檔保存到桌面文件夾 瀏覽:827
wps雲數據如何恢復 瀏覽:496

友情鏈接