程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> Delphi >> Delphi處理SQL Server多媒體數據(2)

Delphi處理SQL Server多媒體數據(2)

編輯:Delphi

2.多媒體數據的轉移

利用SQL Server所帶的BCP實用工具,可以很方便地將數據庫部分或全部數據復制出來,包括二進制數據。對復制出的多媒體數據可以通過網絡或移動存儲設備將它們轉移到遠端的監控電腦上,再利用BCP將它們復制到監控數據庫中,以便對多媒體數據進行回放或做其它處理。下面是簡化了的將數據從數據庫復制到外部文件和從外部文件復制入數據庫的程序片段。

var
s1:string;
begin
s1:='bcp "select * from st2002..st2002_sf where st_flag=1" queryout c:\Media_data.dat -N -P -S sunnynt\hy2002';
winexec(PChar(s1),sw_show);
end;

其中“select * from st2002..st2002_sf where st_flag=1”表示從st2002數據庫的st2002_sf表中提取數據,“c:\Media_data.dat”為輸出數據文件,參數queryout表示從查詢中復制數據到外部文件,-N表示進行大容量數據復制操作,-P表示使用默認密碼,-S提定進行數據復制操作的數據庫服務器或實例。

var
s1:string;
begin
s1:= 'bcp ST2002..ST2002_SF in c:\Media_data.dat -n -E -P -S sunnynt \hy2002';
winexec(PChar(s1),sw_show);
end;

其中參數in表示將數據從外部文件復制到數據表中。

3.多媒體數據的回放

同存儲的方法類似,多媒體數據的回放也要借助TStream數據類型作橋梁,而且它基本上是存儲的逆過程。

LoadfromImage函數的功能是將數據表的Image字段數據裝入TStream中。

function LoadfromImage(const AField:TFIEld;const Stream:TStream):boolean;
var
ResultStr:string;
PResultStr:PChar;
begin
Result:=false;
if (Assigned(AFIEld)) and (Assigned(Stream)) then
begin
try
ResultStr:=AFIEld.Value;
PResultStr:=PChar(ResultStr);
Stream.Write(PResultStr^,length(Result
Str));
Stream.Seek(0,0);
Result:=True;
except
end;
end;
end;

下面是調用LoadfromImage函數將數據表Image字段中的圖像數據轉出到外部文件中並利用圖像顯示控件回放圖像的程序片段。

var
FS:TFileStream;
begin
FS:=TFileStream.Create('c:\Car001.jpg',fmCreate);
LoadfromImage(adodataset1.fIEldby
name('st_img'),FS);
FS.Free;
image1.picture.LoadFromFile('c:\Car001.jpg');
end;

三、小結

其它多媒體數據類型如聲音、視頻等的轉出過程與圖像的轉出完全相同,只是回放部分應針對不同媒體類型采用不同的媒體播放控件。

上面所述的原型程序在Delphi 5/6/7+SQL Server 2000標准版中調試通過,經過適當的擴充和修改後,這些程序在筆者開發的高速公路收費系統中得到了驗證。同樣,這些程序也可使用在如學籍管理、檔案管理、人事管理、商品交易等涉及到多媒體數據的應用系統中。

如今已經是數碼時代,DC、DV、MP3等數碼設備正逐漸深入到我們生活和工作中,它們產生的圖像、視頻、聲音等多媒體信息呈爆炸式增長,如何有效管理這些多媒體信息成為擺在我們面前的課題。本文簡單討論了利用SQL Server數據庫對多媒體信息進行管理的幾個基本問題,其原理同樣適合Sybase、Oracle等數據庫和PowerBuilder、VB等前端開發工具。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved