Q
qqhp
Unregistered / Unconfirmed
GUEST, unregistred user!
我在编一个数据库后台管理程序时遇到两个问题。
先讲一下我的方法,是用ADO访问数据库,但是考虑到使用Delphi的ADO控件,
连数据库比较慢,so我是使用非绑定方法,即没用到Database,Table等基本组件。
于是遇到了许多意外的问题,但翻阅了n多Delphi网站都没有答案。
【1】edit1.Text :=rescordset1.Fields['SHENG'];
本句是将一个字段的内容显示到编辑框;
但若字段‘sheng’为空值(NULL),在运行时总会出现EVariantError异常,
我使用Delphi中许多判断空值的方法(varIsNull等)都不行。我知道在VB中用ISNULL
就ok了。Delphi不知是否要用ADO自带的什么方法,还请赐教。
【2】我现在要用image组件显示数据库的图片(jpg格式),但不知如何保存图片到数据库,
或如何从数据库读出。我使用的是ORACLE8,图片字段设定类型是BLOB.
参阅网上的一些方法,多用流的方式。我使用下列语句:
try {存入图片}
MStream:=TMemoryStream.create;
imgPic.Picture.Graphic.SaveToStream(MStream);
MStream.Position:=0;
{ ***********************}
rescordset1.Fields['picture'].value.LoadFromStream(MStream);
{ ***********************}
finally
MStream.Free;
end;
但编译时通不过,问题就在我用****括起来的那句(rescordset1.fields....);
系统提示:Type not allowed in OLE Automation call.
不知如何解决,有劳各位高手了。Thanks.
先讲一下我的方法,是用ADO访问数据库,但是考虑到使用Delphi的ADO控件,
连数据库比较慢,so我是使用非绑定方法,即没用到Database,Table等基本组件。
于是遇到了许多意外的问题,但翻阅了n多Delphi网站都没有答案。
【1】edit1.Text :=rescordset1.Fields['SHENG'];
本句是将一个字段的内容显示到编辑框;
但若字段‘sheng’为空值(NULL),在运行时总会出现EVariantError异常,
我使用Delphi中许多判断空值的方法(varIsNull等)都不行。我知道在VB中用ISNULL
就ok了。Delphi不知是否要用ADO自带的什么方法,还请赐教。
【2】我现在要用image组件显示数据库的图片(jpg格式),但不知如何保存图片到数据库,
或如何从数据库读出。我使用的是ORACLE8,图片字段设定类型是BLOB.
参阅网上的一些方法,多用流的方式。我使用下列语句:
try {存入图片}
MStream:=TMemoryStream.create;
imgPic.Picture.Graphic.SaveToStream(MStream);
MStream.Position:=0;
{ ***********************}
rescordset1.Fields['picture'].value.LoadFromStream(MStream);
{ ***********************}
finally
MStream.Free;
end;
但编译时通不过,问题就在我用****括起来的那句(rescordset1.fields....);
系统提示:Type not allowed in OLE Automation call.
不知如何解决,有劳各位高手了。Thanks.