![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Invalid class typecast
DelphiNew © (2005-06-21 15:44:00)Есть вот такая процедура:
var
BlobStream: TBlobStream;
StrStream: TStringStream;
s: string;
begin
BlobStream:=TBlobStream.Create(IBQFndProc.fieldByname('OBJ_BODY')
as TBlobField, bmRead);
StrStream := TStringStream.Create(s);
try
ObjectBinaryToText(BlobStream, StrStream);
s:=StrStream.DataString;
finally
StrStream.Free;
BlobStream.Free;
end;
FormProc:= TFormProc.Create(self);
FormProc.Memo1.lines.text:= s;
FormProc.Show;
end;
При попытке выполнения строчки BlobStream:=TBlobStream.Create(IBQFndProc.fieldByname('OBJ_BODY')as TBlobField, bmRead); вылетает ошибка Invalid class typecast. В чём может быть причина?
DelphiNew (2005-06-21 15:57:00) [1]Спасибо попробую
Ega23 (2005-06-21 15:53:00) [2]
procedure TCustomGfxDBConnector.AddGfxObject;
var
ms:TMemoryStream;
GfxTag:TGfxTagStruct;
GfxPoly:TGFXPolyObject;
begin
ms:=TMemoryStream.Create;
try
if TBLOBField(FDataLink.DataSet.FieldByName(DataField)).IsNull then Exit;
//DataSource.DataSet.FieldByName(DataField).
TBLOBField(FDataLink.DataSet.FieldByName(DataField)).SaveToStream(ms);
ms.Position:=0;
ms.ReadBuffer(GfxTag, SizeOf(TGfxTagStruct));
ms.Position:=GfxTag.Offset;
if GfxTag.Tag<>GFXTAG_TYPE then Exit;
Case GfxTag.wParam of
POLY_OBJECT : begin
GfxPoly:=TGFXPolyObject.Create;
GfxPoly.LoadFromStream(ms);
GfxPoly.UID:=FDataLink.DataSet.FieldByName(IDField).AsInteger;
FGFXDrawer.AddObject(GfxPoly);
end;
RASTER_OBJECT : begin
//
end;
end;
finally
ms.Free;
end;
end;