解决方案 »
- delphi动态数组的问题
- 关于.dll文件的注册
- 请问大侠:界面用DEPHI编写,后台访问数据库用C++写,两者不同的语言对接的时候该怎么办啊,谢谢!!
- 表格单选能功~~
- adoquery和adodataset有什么区别啊
- 我有一个字符串加密函数,怎样对文本文件中的一段加密?
- 在将数据表中数据读出到edit中,当该字段为空值时,报错,如何解决?
- 如何时间对文本文件的加密。回答有分!
- 500分请教!!高手请进!关于WINDOWS消息及WIN API函数的问题?在线等待!急!!!!!!!
- 如果将OCX导入DELPHI中然后进行调用发布时的问题
- 一个关于类型文件的问题请教斑竹
- 如何在点击属性STYLE=tbsDropDown的TOOLBUTTON时就下拉DROPDOWNMENU属性中指定的菜单项?
BlockWrite(f,Buffer^,SizeOf(Buffer),BytesRead);
function TForm1.DownLoadFileFromDB(SerialNo,FileName: String): Boolean;
var
FileHandle:Integer;
fs:TBlobStream;
buffer:PChar;
MemSize:Integer;
f:File;
BytesRead:Integer;
begin
With cQuery1 do
begin
Close;
Sql.Clear ;
Sql.Add ('select serial_no,notice_message');
Sql.Add ('from prt_notice_message');
Sql.Add ('where serial_no=:SerialNo');
ParamByName('SerialNo').AsString:=SerialNo;
OPen;
end;
fs:=TBlobStream.Create (TMemoField(cQuery1.FieldByName('notice_message')),bmRead);
fs.Position :=0;
try
MemSize := fs.Size;
Inc(MemSize); {Make room for the buffer's null terminator.}
Buffer := AllocMem(MemSize);
try
fs.Read(Buffer^, MemSize); if FileExists(FileName) then
if MessageBox(Handle,'该文件已经存在,是否覆盖原文件?','',MB_ICONINFORMATION+MB_OKCANCEL)=IDCANCEL then
begin
Result:=false;
exit;
end;
AssignFile(f,FileName);
try
Rewrite(f,1);
BlockWrite(f,Buffer^,SizeOf(Buffer),BytesRead);
finally
CloseFile(f);
end;
finally
FreeMem(Buffer, MemSize);
end;
finally
fs.Free;
end;end;