色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

PB中想要上傳一個(gè)WORD文檔或excel文檔入數(shù)據(jù)庫(kù)

PB中想要上傳一個(gè)WORD文檔或excel文檔入https://www.b5b6.com/shujuku/?

很久沒用過PB了,網(wǎng)上找了一篇,大致看了一下,應(yīng)該沒什么問題

--轉(zhuǎn)自51CTO論壇

在PowerBuilder里面操作BLOB數(shù)據(jù)地靈活技術(shù)

PowerBuilder提供的BLOB(Binary Large Object)數(shù)據(jù)類型可以用來處理大型數(shù)據(jù),包括圖像、大文本、Word文檔、二進(jìn)制文件和多媒體等各種數(shù)據(jù),它的長(zhǎng)度可以是0~2GB字節(jié),我們利用BLOB類型的變量可以將數(shù)據(jù)傳遞給https://www.b5b6.com/shujuku/以大字段方式存儲(chǔ)。但是用通常的數(shù)據(jù)窗口技術(shù)無(wú)法將BLOB類型數(shù)據(jù)加入到https://www.b5b6.com/shujuku/中,也不能將https://www.b5b6.com/shujuku/中相應(yīng)字段的數(shù)據(jù)提取出來,即使在程序中直接使用UPDATE和SELECT等SQL語(yǔ)句也是無(wú)法對(duì)BLOB類型數(shù)據(jù)進(jìn)行操作的。下面筆者將介紹在PowerBuilder 7.0中操作BLOB類型數(shù)據(jù)的技巧。

程序設(shè)計(jì)原理

在PB中實(shí)現(xiàn)BLOB類型數(shù)據(jù)的入庫(kù)和查詢,主要要用到兩條特殊的SQL命令——UPDATEBLOB和SELECTBLOB,首先定位要進(jìn)行操作的記錄,然后使用UPDATEBLOB命令就可以將BLOB類型變量中存放的數(shù)據(jù)傳遞給https://www.b5b6.com/shujuku/,而使用SELECTBLOB則是將指定記錄中的大字段數(shù)據(jù)傳遞給BLOB變量。

使用BLOB類型變量獲取外界文件的數(shù)據(jù)內(nèi)容,還必須借助于PB提供的可視化OLE控制對(duì)象,通過它可以將指定的文件內(nèi)容顯示成相應(yīng)的對(duì)象(如BMP圖片),雙擊它就可以激活相應(yīng)的OLE服務(wù)器應(yīng)用程序,來編輯修改對(duì)象的內(nèi)容,同時(shí)也可以讀取對(duì)象的數(shù)據(jù)內(nèi)容(利用OLE控件的ObjectData屬性),給BLOB類型變量賦值。

下面結(jié)合一個(gè)簡(jiǎn)單的程序?qū)嵗v述如何處理BLOB數(shù)據(jù)類型。在這個(gè)例子中,BMP圖片將作為一個(gè)大字段存儲(chǔ)在https://www.b5b6.com/shujuku/中。我們選擇Microsoft Access 2000作為后臺(tái)https://www.b5b6.com/shujuku/,它的字段類型中包含“OLE對(duì)象”類型(如果選擇MS SQL Server作為https://www.b5b6.com/shujuku/服務(wù)器,可以使用TEXT或IMAGE類型字段存放大字段數(shù)據(jù)),這樣就為管理多媒體數(shù)據(jù)、大文件和圖片提供了支持。

操作BLOB字段的實(shí)現(xiàn)過程

我們?cè)贏ccess中創(chuàng)建一個(gè)新的https://www.b5b6.com/shujuku/文件,文件名是bmp.mdb,在其中定義BMP圖片數(shù)據(jù)表bmptable如下:

各字段的其它設(shè)置(如字段寬度等),均采用缺省形式即可。

https://www.52fb.cn前還需要做的一步準(zhǔn)備工作是在操作系統(tǒng)的ODBC配置中建立指向bmp.mdbhttps://www.b5b6.com/shujuku/的連接,名稱定為bmptable。

下面的程序片段實(shí)現(xiàn)了https://www.b5b6.com/shujuku/的連接,圖片的插入、更新、刪除和查詢。考慮文章的篇幅,本文只列出與主題相關(guān)的程序源碼。

1. 連接Accesshttps://www.b5b6.com/shujuku/

SQLCA.DBMS = "ODBC"

// SQLCA為全局transaction事務(wù)變量

SQLCA.AutoCommit = False

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

CONNECT USING SQLCA;

If SQLCA. SQLCode <> 0 Then

MessageBox ("https://www.b5b6.com/shujuku/錯(cuò)誤", "連接失敗!")

Halt close;

End If

2. 將BMP圖片存入https://www.b5b6.com/shujuku/

integer bmpno,icount

//變量bmpno存放給定的圖片編號(hào)

string filepath,filename

blob blb_tmp

//…此處對(duì)圖片編號(hào)bmpno賦值,例如bmpno=101;可以通過程序?qū)崿F(xiàn)為彈出對(duì)話框窗口提供一個(gè)圖片編號(hào)

//查詢指定的圖片編號(hào)是否已經(jīng)存在

icount=0

SELECT COUNT() INTO :icount

FROM bmptable

WHERE bmptable.bmpno=:bmpno

USING SQLCA; //:bmpno為給定的圖片編號(hào)

if icount>0 then

MessageBox("查詢結(jié)果",string(bmpno)+" 號(hào)圖片已經(jīng)存在,請(qǐng)輸入一個(gè)新的圖片編號(hào)")

return

end if

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

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

If Len(filepath)=0 Then

Return

End If

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

Return

End If

//新圖片入庫(kù)

string sql

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

VALUES ("&&

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

+filename+"')"

EXECUTE IMMEDIATE :sql;

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務(wù)

Else

MessageBox("https://www.b5b6.com/shujuku/錯(cuò)誤","插入失敗")

ROLLBACK USING SQLCA;

//事務(wù)回滾

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;

//提交事務(wù)

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

Else

MessageBox("https://www.b5b6.com/shujuku/錯(cuò)誤","更新圖片失敗")

ROLLBACK USING SQLCA;

//事務(wù)回滾

Return

End If

3. 從https://www.b5b6.com/shujuku/中刪除BMP圖片

UPDATE bmptable SET bmpdata=''

WHERE bmptable.bmpno=:bmpno

USING SQLCA;

//bmpno為要?jiǎng)h除的圖片編號(hào)

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務(wù)

Else

MessageBox("https://www.b5b6.com/shujuku/錯(cuò)誤","更新失敗")

ROLLBACK USING SQLCA;

//事務(wù)回滾

Return

End If

DELETE FROM bmptable

WHERE bmptable.bmpno=:bmpno

USING SQLCA;

If SQLCA.SQLDBCode=0 Then

COMMIT USING SQLCA;

//提交事務(wù)

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

Else

MessageBox("https://www.b5b6.com/shujuku/錯(cuò)誤","刪除失敗")

ROLLBACK USING SQLCA;

//事務(wù)回滾

Return

End If

4. 按圖片編號(hào)查詢圖片信息

//需要提供一個(gè)圖片編號(hào)存放在變量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服務(wù)器即可編輯圖片

End If

使用PBhttps://www.52fb.cn時(shí),每次對(duì)https://www.b5b6.com/shujuku/進(jìn)行操作后要注意檢查返回結(jié)果,以保證程序的可靠性。以上程序只是對(duì)操作BLOB數(shù)據(jù)類型的關(guān)鍵技術(shù)進(jìn)行探討,通過畫板設(shè)計(jì)相應(yīng)的用戶界面,即可形成一個(gè)完整的基于Client/Server結(jié)構(gòu)的https://www.b5b6.com/shujuku/應(yīng)用程序。