線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1198
推到 Plurk!
推到 Facebook!

请问:如何将文件插入数据库?

尚未結案
houyu73
一般會員


發表:2
回覆:0
積分:0
註冊:2003-05-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-05-17 01:42:37 IP:61.185.xxx.xxx 未訂閱
我想将*.exe,*.bmp,*.wav,*.mp3,*.doc等等文件以“流”的方式插入SQL SERVER 2000数据库,并将其随时还原到文件形式,请问,数据库字段应用何种数据格式,如何运用“流”的方式完成上述工作? 我已经可以将*.bmp以DBImage存入SQL2000的image字段,将文本以DBmemo存入SQL2000的ntext字段,*.bmp存入后尺寸大,反应慢,*.jpg文件DBImage可显示但存不进image字段。 (我常从网上下载图片,小说,小程序,mp3,midi等等,想存入自己的SQL2000中,好查好找,图个方便) 普通的TFileStream,TMemoStream我常用,但上述问题近来一直未能解决,真是一个遗憾! 望各位大侠指点一二。
領航天使
站長


發表:12216
回覆:4186
積分:4084
註冊:2001-07-25

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-05-17 07:47:04 IP:192.168.xxx.xxx 未訂閱
參考站長寫的這一篇 將大型圖檔存入資料庫的示範程式 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=19505 ~~~Delphi K.Top討論區站長~~~
------
~~~Delphi K.Top討論區站長~~~
wnhoo
高階會員


發表:75
回覆:443
積分:198
註冊:2003-04-22

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-05-17 09:19:41 IP:61.155.xxx.xxx 未訂閱
//JPG图象存入MS SQL Server中. 保存jpg:   TBlobField(query1.Fields[n]).LoadFrom('xxx.jpg'); 读取并显示jpg: var   Mem: TMemoryStream;   Jpg: TJpegImage; begin   mem:=TMemoryStream.Create;   Jpg:=TJpegImage.Create;   TBlobField(query1.Fields[n]).SaveToStream(mem);   Jpg.LoadFromStream(mem);   image1.picture.Bitmap.Assign(Jpg);   mem.Free;   Jpg.Free; end; (1).在Uses中加入JPEG单元; (2).定义一个全程变量,例如var AJPEG:TJPEGImage; unit Unit1; interface uses   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,   Dialogs,JPEG, StdCtrls, Buttons, ExtDlgs; type   TForm1 = class(TForm)     BitBtn1: TBitBtn;     OpenPictureDialog1: TOpenPictureDialog;     procedure BitBtn1Click(Sender: TObject);   private     { Private declarations }   public     { Public declarations }   end; var   Form1: TForm1; AJPEG:TJPEGImage; x,y:integer; implementation {$R *.dfm} procedure TForm1.BitBtn1Click(Sender: TObject); begin Canvas.Pen.Color:=clBlack; Canvas.Pen.Style:=psSolid; Canvas.Brush.color:=clBtnFace; Canvas.Brush.Style:=bsSolid;//此上是设置Canvas的一些属性,便于以后调入JPEG文件 if OpenPictureDialog1.Execute then begin AJpeg.Free;//释放旧AJpeg; AJpeg:=TJpegImage.Create;//产生一个新的AJpeg; AJpeg.LoadFromFile(OpenPictureDialog1.Filename);//载入JPEG文件; end; Canvas.Rectangle(2,2,700,450);//画一个黑框的矩形将图片围住; x:=20; y:=20; Form1.Canvas.Draw(x,y,AJpeg);//显示新的AJpeg; end; end. //读出文件的长度  var  f: file of Byte;  size : Longint;  begin  AssignFile(f, 'f:\t.exe');  Reset(f);  size := FileSize(f);  edit1.text := IntToStr(size);  CloseFile(f);  end;  或:  var  fh:integer;  fs:longint;  begin  fh:=fileopen('文件名',fmopenread);  fs:=fileseek(fh,0,2);  fileclose(fh);  end;     // 将字符串用二进制模式写入文件  var  filehandle:integer;  filename:string;  fn:string;  begin  filehandle:=fileopen(filename,fmopenreadwrite);  fileseek(filehandle,i*256,0);  getmem(buffer,300);  try  strpcopy(buffer,fn);  filewrite(filehandle,buffer^,256);  finally  freemem(buffer);  end;  fileclose(filehandle);  end;  end;     供参考!!!    风花雪月 e梦情缘
------
风花雪月 e梦情缘
系統時間:2024-06-29 16:05:13
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!