procedure .... //保存JPG文件到SQL数据库中
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
filename:string;
begin
if OpenDialog1.Execute then
begin
filename:=OpenDialog1.FileName;
MyFile:=TFileStream.Create(fileName,fmOpenRead);
with table1 do
begin
Open;
edit;
Stream := TBlobStream.Create(FieldByName('Doc') as TBlobField, bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize);
//增加的一字节给结尾的null
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
//流指针位置放到最前
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
FieldByName('Name').Asstring:=ExtractFileName(fileName);
FieldByName('Size').Asstring:=inttostr(MemSize-1);
statictext1.caption:='文件名:'+ExtractFileName(fileName);
statictext2.caption:='文件大小:'+inttostr(Memsize-1)+'字节';
finally
MyFile.Free;
Stream.Free;
end;
try
table1.Post;
except
showmessage('保存失败!');
halt;
end;
showmessage('保存成功,正在加载文档!');
end;
end;
end;执行出错!键列信息不足或不正确,更新影响到更多的行
var
MemSize: Integer;
Buffer: PChar;
MyFile: TFileStream;
Stream: TBlobStream;
filename:string;
begin
if OpenDialog1.Execute then
begin
filename:=OpenDialog1.FileName;
MyFile:=TFileStream.Create(fileName,fmOpenRead);
with table1 do
begin
Open;
edit;
Stream := TBlobStream.Create(FieldByName('Doc') as TBlobField, bmWrite);{‘Doc’为BLOB字段名}
MemSize := MyFile.Size;
Inc(MemSize);
//增加的一字节给结尾的null
Buffer := AllocMem(MemSize);
try
Stream.Seek(0, soFromBeginning);
//流指针位置放到最前
MyFile.Read(Buffer^,MemSize);
Stream.Write(Buffer^,MemSize);
FieldByName('Name').Asstring:=ExtractFileName(fileName);
FieldByName('Size').Asstring:=inttostr(MemSize-1);
statictext1.caption:='文件名:'+ExtractFileName(fileName);
statictext2.caption:='文件大小:'+inttostr(Memsize-1)+'字节';
finally
MyFile.Free;
Stream.Free;
end;
try
table1.Post;
except
showmessage('保存失败!');
halt;
end;
showmessage('保存成功,正在加载文档!');
end;
end;
end;执行出错!键列信息不足或不正确,更新影响到更多的行
解决方案 »
- 执行线程后,为什么界面会像死掉一样
- 如何使用Wise for Windows Installer Enterprise制作安装程序
- 我在使用函数WSAIoctl的时候需要设置一个参数SIO_KEEPALIVE_VALS。
- delphi如何计算出一分钟中的最后一秒
- ACCESS数据库中这样的sql如何写啊?高手请进。
- 在哪里能有键值下载?
- 帮帮我.这个问题有点怪!!
- Shell编程---如何判断一目录是否共享?
- 如何用readln函数一次只读出一行文本?????急!!!!!!!
- 我想做个类似贺卡专家的程序,请帮助
- 如何给panel加上滚动条?
- 客户端Dcomconnection与应用服务器连接后,应用服务器自动运行,当客户端断开连接后,应用服务器自动关闭,这时能让应用服务器不关吗?
try
Stream.CopyForm(MyFile, 0); 即可
其他的什么缓冲区等都可以不要了
————————————————————————————————————
宠辱不惊,看庭前花开花落,去留无意;毁誉由人,望天上云卷云舒,聚散任风。
————————————————————————————————————