[阅读: 576] 2005-01-25 14:11:41
在DELPHI中当往数据库(Sybase)中插入或更新BLOB字段时,会出现莫名其妙的错误:
如:自动关闭程序。
General SQL Error,
有时什么也不做就返回FALSE;
程序大概如下:
function SaveData(tmpDatabaseName:string):boolean;
begin
Result := False;
with TQuery.Create(nil) do
begin
DatabaseName := tmpDatabaseName;
Sql.Add('SELECT A,B,D FROM D');
Open;
FilesStream := TFileStream.Create('C:\a.txt',fmOpenRead);
if Fields[0].isNull then
begin
Append; //这里出错
FieldByName('a').AsString := 'tmpA';
end
else
begin
try
Edit; //或是这里出错,有时连错误都捕获不到
except
on E: Exception do
showmessage(e.message + #13 + sql.text);
end;
end;
ResultData := TBlobStream.Create(FieldbyName('b') as TBlobField,bmReadWrite);
ResultData.Seek(0,soFromBeginning);
ResultData.Truncate ;
ResultData.CopyFrom(FilesStream,FilesStream.Size);
FilesStream.Free;
FieldByName('C').AsString := 'tmpC';
Post;
Result := true;
end;
end;