关于VB 6 怎样读取Access数据库中的图片(ole类型数据)和调用chn帮助文件

关于VB 6 怎样读取Access数据库中的图片(ole类型数据)和调用chn帮助文件,第1张

给你个示例,下面是读取数据库中的二进制数据,并存放到指定的地方的,读取的,应该差不多

strSQL = "select From CodeFile where CodeID=" & ID

RsOpen strSQL, Conn, 1, 3

While Not RsEOF

FileName = Rs("FileName")Value

Str = Rs("FileContent")GetChunk(Rs("FileContent")ActualSize)

Call SaveFile(Str, AppPath & "\Tmp\" & FileName)

RsMoveNext

Wend

'下面是SaveFile的过程

Public Sub SaveFile(Str, fName)

Dim objstream As New ADODBStream

'--------------建立ADODBStream对象,必须要ADO 25以上版本---------

objstreamType = 1

'-------------以二进制模式打开-------------------------------------

objstreamOpen

'--------------------将字符串内容写入缓冲--------------------------

objstreamWrite Str

'--------------------将缓冲的内容写入文件--------------------------

objstreamSaveToFile fName, 1

objstreamClose

Set objstream = Nothing

'-----------------------关闭对象,释放资源-------------------------

End Sub

网站上不能这样存路径,这种路径是没用的,对于网站来说,我不清楚你这个是后台上传的还是自己手填到数据库的,原理都一样,比如是用后台上传的,那应该把上传后保存到网站的一个固定的目录,比如存在网站根目录下的upload目录(假定名为123jpg),那你数据库中的保存的路径就应该是比如/upload/123jpg

然后下面的页面代码就可以不用改了。

unit Unit1;interfaceuses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB,jpeg, DBCtrls, Mask;type

TForm1 = class(TForm)

con1: TADOConnection;

qry1: TADOQuery;

img1: TImage;

btn1: TBitBtn;

btn2: TBitBtn;

OpenDialog1: TOpenDialog;

lbl1: TLabel;

edt1: TEdit;

lbl2: TLabel;

edt2: TEdit;

dbnvgr1: TDBNavigator;

ds1: TDataSource;

qry2: TADOQuery;

img2: TImage;

btn3: TBitBtn;

procedure FormShow(Sender: TObject);

procedure btn1Click(Sender: TObject);

procedure btn2Click(Sender: TObject);

procedure btn3Click(Sender: TObject);

procedure dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);

private

{ Private declarations }

public

{ Public declarations }

end;var

Form1: TForm1;implementation{$R dfm}procedure TForm1btn1Click(Sender: TObject);

var

ms:TMemoryStream;

jpg:TJPEGImage;

begin

ms:=TMemoryStreamCreate;

jpg:=TJPEGImageCreate;

jpgAssign(img1PictureGraphic);

jpgSaveToStream(ms);

msPosition:=0;

qry1SQLClear;

qry1SQLAdd('Insert Into TIMG(PNAME,PINFO,PPHOTO) values(:pname,:pinfo,:pphoto)');

qry1ParametersParamByName('pname')Value:=edt1Text;

qry1ParametersParamByName('pinfo')Value:=edt2Text;

qry1ParametersParamByName('pphoto')LoadFromStream(ms,ftBlob);

qry1ExecSQL;

jpgFree;

msFree;

end;procedure TForm1btn2Click(Sender: TObject);

begin

if OpenDialog1Execute then

img1PictureLoadFromFile(OpenDialog1FileName);

end;procedure TForm1btn3Click(Sender: TObject);

var

ms:TMemoryStream;

jpg:TJPEGImage;

begin

if not qry2FieldByName('PPHOTO')IsNull then

begin

ms:=TMemoryStreamCreate;

jpg:=TJPEGImageCreate;

TBlobField(qry2FieldByName('PPHOTO'))SaveToStream(ms);

msPosition:=0;

jpgLoadFromStream(ms);

img2PictureAssign(jpg);

end;

end;procedure TForm1dbnvgr1Click(Sender: TObject; Button: TNavigateBtn);

begin

btn3Click;

end;procedure TForm1FormShow(Sender: TObject);

begin

con1Close;

con1ConnectionString:='Driver=Firebird/Interbase(r) driver;UID=SYSDBA;PWD'+

'=123456;Dbname='+ExtractFilePath(ApplicationExeName)+'IMGFDB';

con1LoginPrompt:=False;

con1Connected:=True; qry2Active:=True;

//img2DataField:='PPHOTO';

end;end 我用的是Firebird数据库,存放的字段名是PPHOTO,数据类型是BLOB,其他数据库应该也差不多。

以上就是关于关于VB 6 怎样读取Access数据库中的图片(ole类型数据)和调用chn帮助文件全部的内容,包括:关于VB 6 怎样读取Access数据库中的图片(ole类型数据)和调用chn帮助文件、c#中如何根据数据库中的路径读取图片、在delphi中如何取出数据库中的图片显示在image上等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9297116.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-26
下一篇 2023-04-26

发表评论

登录后才能评论

评论列表(0条)

保存