我写了段把图片文件存储到数据库的代码,编译能通过,就是不能存数据,高手帮看看这是什么问题!
var fs : TFileStream;
ext,n: string;
begin
n:=Opendialog1.FileName;
if not FileExists(n) then
begin
Application.MessageBox(PChar('ÕÒ²»µ½Îļþ'+n),'´íÎó',MB_ICONERROR);
Exit;
end;
ext := ExtractFileExt(n);
fs := TFileStream.Create(n,fmOpenRead);
ADOTable1.Append;
try
adotable1.FieldByName('Name').AsString:=ext;
fs.Position:=0;
TBlobField(adotable1.FieldByName('Date')).LoadFromStream(fs);
adotable1.Post;
finally
fs.Free;
end;
end;
var fs : TFileStream;
ext,n: string;
begin
n:=Opendialog1.FileName;
if not FileExists(n) then
begin
Application.MessageBox(PChar('ÕÒ²»µ½Îļþ'+n),'´íÎó',MB_ICONERROR);
Exit;
end;
ext := ExtractFileExt(n);
fs := TFileStream.Create(n,fmOpenRead);
ADOTable1.Append;
try
adotable1.FieldByName('Name').AsString:=ext;
fs.Position:=0;
TBlobField(adotable1.FieldByName('Date')).LoadFromStream(fs);
adotable1.Post;
finally
fs.Free;
end;
end;
解决方案 »
- treeview初始化,如何实现根节点和第二层节点不会重复创建?
- 请问应该怎么终止一个线程啊?^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^!!!
- 求BORLAND链接的DELPHI7。0升级包下载地址。
- FTP(急急急急急急急)
- delphi里怎样终止一个外部程序运行啊?
- 如何释放内存?
- 请问D7中的TCPClientSocket,TCPServerSocket如何使用
- 请看这样的 SQL 语句怎么写????????
- 和恐龙讲道理
- 为什么只循环一次!
- 给大家介绍一个好编程网站
- TIDtcpserver,TIDtcpclient在不同的网段能否通信,解决了马上给分
或者你直接用TBlobField(FieldByName('Data')).LoadFromFile(n);就行了,干嘛还用stream捣腾一下啊
可是就是存不了图片进数据库里
我用的是access数据库,Date的属性是OLE的
是不是存进去了只是你没有读出来吧?
就这一句出问题了TBlobField(FieldByName('Data')).LoadFromFile;
to:星雨 老兄能不能把你的程序发个给我
我是找不出什么问题来了!!
头疼啊~~我的油箱[email protected]
先谢谢了
if qDoc.Active then //qDoc是一AdoQuery
begin
if OpDlg.Execute then // OpDlg是一个OpenDialog
begin
qDoc.Edit; //把nField替换成你的ole字段名
TBlobField(qDoc.FieldByName(bField)).LoadFromFile(OpDlg.FileName);
qDoc.Post;
end;
end;2)用TMemoryStream
var
Stream: TMemoryStream;
begin
Stream:=TMemoryStream.Create;
if qDoc.Active then
begin
if OpDlg.Execute then
begin
stream.LoadFromFile(OpDlg.FileName);
Stream.Seek(0,soFromBeginning);
qDoc.Edit;
TBlobField(qDoc.FieldByName(bField)).LoadFromStream(Stream);
qDoc.Post;
Stream.Seek(0,soFromBeginning);
end;
end;
Stream.Free;
end;
3)用TFileStream:
fStream: TFileStream;
begin
if qDoc.Active then
begin
if OpDlg.Execute then
begin
fStream:=TFileStream.Create(OpDlg.FileName,fmOpenRead);
fStream.Seek(0,soFromBeginning);
qDoc.Edit;
TBlobField(qDoc.FieldByName(bField)).LoadFromStream(fStream);
qDoc.Post;
fStream.Free;
end;
end;end;
if qDoc.Active then //qDoc是一AdoQuery
begin
if OpDlg.Execute then // OpDlg是一个OpenDialog
begin
qDoc.Edit; //把nField替换成你的ole字段名
TBlobField(qDoc.FieldByName(bField)).LoadFromFile(OpDlg.FileName);
qDoc.Post;
end;
end;
这段是写在button里???
能通过编译,点button没反应。