L
lyj.hm
Unregistered / Unconfirmed
GUEST, unregistred user!
散分咯,大家快来看看:用CreateOleObject创建ADO对象向数据库写入BMP图象总提示Invalid Typecast,怎么解决呀?自己已经解决,愿与大家共享(150分)<br />begin
try //建立记录集
rst.Open('tCardInfo',conn,adOpenDynamic,adLockOptimistic,adCmdTable);
BMP := TBitmap.Create; //建立图象对象
MS := TMemoryStream.Create; //建立流对象
rst.AddNew;//--------------------------------------------- 添加一条记录
rst.FieldByName('uName'):=uName;
rst.FieldByName('Sex'):=Sex;
rst.FieldByName('Nation'):=Nation;
rst.FieldByName('Birthday'):=Birthday;
rst.FieldByName('Address'):=Address;
rst.FieldByName('CardID'):=CardID;
rst.FieldByName('IssueDept'):=IssueDept;
rst.FieldByName('ValidStartDate'):=ValidStartDate;
rst.FieldByName('ValidEndDate'):=ValidEndDate;
rst.FieldByName('NewAddress'):=NewAddress;
try //----------------------------保存图象
BMP.Assign(imgPhoto.Picture.Graphic); //为显示的图象分配内存
BMP.SaveToStream(MS); //将图象转化为流对象
TBlobField(rst.Fields(12)).LoadFromStream(MS); //<------错误在这里 Error:Invalid typeCast
finally
MS.Free;
BMP.Free;
end; //---------------------------------保存图象END
rst.Update;//--------------------------------------------- 更新记录
except
sbStauts.Panels[1].Text:='活动串口:'+IntToStr(comPort)+'; 记录集打开失败';
exit;
end;
end;
try //建立记录集
rst.Open('tCardInfo',conn,adOpenDynamic,adLockOptimistic,adCmdTable);
BMP := TBitmap.Create; //建立图象对象
MS := TMemoryStream.Create; //建立流对象
rst.AddNew;//--------------------------------------------- 添加一条记录
rst.FieldByName('uName'):=uName;
rst.FieldByName('Sex'):=Sex;
rst.FieldByName('Nation'):=Nation;
rst.FieldByName('Birthday'):=Birthday;
rst.FieldByName('Address'):=Address;
rst.FieldByName('CardID'):=CardID;
rst.FieldByName('IssueDept'):=IssueDept;
rst.FieldByName('ValidStartDate'):=ValidStartDate;
rst.FieldByName('ValidEndDate'):=ValidEndDate;
rst.FieldByName('NewAddress'):=NewAddress;
try //----------------------------保存图象
BMP.Assign(imgPhoto.Picture.Graphic); //为显示的图象分配内存
BMP.SaveToStream(MS); //将图象转化为流对象
TBlobField(rst.Fields(12)).LoadFromStream(MS); //<------错误在这里 Error:Invalid typeCast
finally
MS.Free;
BMP.Free;
end; //---------------------------------保存图象END
rst.Update;//--------------------------------------------- 更新记录
except
sbStauts.Panels[1].Text:='活动串口:'+IntToStr(comPort)+'; 记录集打开失败';
exit;
end;
end;