Could not convert variant of type(String) into type(Date)求帮忙!解决方法

Could not convert variant of type(String) into type(Date)求帮忙!!!
if(cxGrid1DBTableView1.Columns[i].Caption='时间') then OraQuery2.ParamByName('aaa').AsString := DateToStr(cxGrid1DBTableView1.Columns[i].DataBinding.Field.OldValue)
这是在保存代码里写的,用了2个cxgrid,cx1和cx2,OraQuery2是cx2里的,时间在数据库表1里是DATE型,aaa在表2里是varchar2()型, 前台改了时间保存后会出现Could not convert variant of type(String) into type(Date)错误,这句话上面是一个插入操作,用了DateToStr或DateTimeToStr转换都不行,求高手解答上面那句话改怎么写?????

------解决方案--------------------
本来就是STRING类型,为什么还要用datetostr?
这和数据库里的数据类型没有关系的.
Could not convert variant of type(String) into type(Date) 的意思就是不能变STRING类型的变体类型转化为DATE类型啊.
------解决方案--------------------
if cxGrid1DBTableView1.Columns[i].Caption='时间' then
OraQuery2.ParamByName('aaa').AsString:=cxGrid1DBTableView1.Columns[i].EditValue;
------解决方案--------------------
这种情况在数据集里设置事件比较好,不建议调用CXGRID,因为CX和数据集是关联的,修改了CXgrid也会触发AODQuery的数据事件,可以在adoquery1的Afterpost里设置。

adoquery2.edit;
adoquery2.fieldbyname('aaa').string:=adoquery1.fieldbyname('时间').asstring;
adoquery2.post;
------解决方案--------------------
Could not convert variant of type(String) into type(Date)——我e没学好,它大概意思是:无法将一个string转换为date类型。一般来说,出现这种情况的原因有:

string类型的值,不符合受体(比如sql数据库)设置的日期格式;
string类型的值='' 这是上一种原因中特殊的一种情况。

解决建议:

1、在赋值前用断点或提示消息检查string的值,看是否符合格式
if cxGrid1DBTableView1.Columns[i].Caption='时间' then begin
showmessage(cxGrid1DBTableView1.Columns[i].EditValue);
OraQuery2.ParamByName('aaa').AsString:=cxGrid1DBTableView1.Columns[i].EditValue;
end;

2、请仔细核实OraQuery2.ParamByName('aaa')字段的类型。