delphi+ODAC:ToraQuery + ToraUpdateSQL

Believe 2011-12-19 07:09:19
有点长,请耐心看完 :)


qryHouseParent(ToraQuery 控件)SQL语句为:

select userid,username,userage from users

qryHouseParent属性Updateobject 设置为:UpdateSQL1(ToraUpdateSQL 控件)

UpdateSQL1的insertL语句:
insert into userparent(userid, userage) values(:userid,:username)(注:userparent表只有这两个字段)

源码:
qryHouseParent.Append;
qryHouseParent.FieldByName('FParentID').AsString := ParentList.Strings[cbxParent.ItemIndex];
qryHouseParent.FieldByName('HouseCode').AsString := fmSysOption.HouseCode;
qryHouseParent.Post;

Post时报错:Field‘username’ must have a value.

这个程序原为BDE连接,后通过BDE Migration Wizard将程序转换成了ODAC的连接方式。
用BDE连接时,插入正常,不报错.

请教原因以及解决方法!
...全文
242 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
都先生 2011-12-21
  • 打赏
  • 举报
回复
qryHouseParent.FieldByName('FParentID').AsString := ParentList.Strings[cbxParent.ItemIndex];
qryHouseParent.FieldByName('HouseCode').AsString := fmSysOption.HouseCode;
这连个字段是怎么回事。
看的云里雾里的。
我是-稻草人 2011-12-21
  • 打赏
  • 举报
回复
参数要分别赋值,就是相同名字的参数也要分开赋值。
Believe 2011-12-21
  • 打赏
  • 举报
回复
额,原帖描述有疏忽,是这样:
qryHouseParent(ToraQuery 控件)SQL语句为:

SELECT p.FPARENTNAME, h.HOUSECODE, h.FPARENTID
FROM WZ_HOUSEPARENT h, WZ_ITEMPARENT p
WHERE (p.FPARENTID = h.FPARENTID)
AND (p.FISVALID = '1')
AND (p.FLEVEL = '1')
and (h.HOUSECODE = P.HOUSECODE)
AND (h.HOUSECODE = :HOUSECODE)
ORDER BY h.FPARENTID

UpdateSQL1的insertL语句:

insert into WZ_HOUSEPARENT
(HOUSECODE, FPARENTID)
values
(:HOUSECODE, :FPARENTID)

源码:
qryHouseParent.Append;
qryHouseParent.FieldByName('FParentID').AsString := ParentList.Strings[cbxParent.ItemIndex];
qryHouseParent.FieldByName('HouseCode').AsString := fmSysOption.HouseCode;
qryHouseParent.Post;

Post时报错:Field‘FPARENTNAME‘must have a value.

当把qryHouseParent的SQL中FPARENTNAME删掉后不报错,但是WZ_HOUSEPARENT中却只有语句中要插入的那两个字段而已。

[Quote=引用楼主 irslyy 的回复:]
有点长,请耐心看完 :)


qryHouseParent(ToraQuery 控件)SQL语句为:

select userid,username,userage from users

qryHouseParent属性Updateobject 设置为:UpdateSQL1(ToraUpdateSQL 控件)

UpdateSQL1的insertL语句:
insert int……
[/Quote]
Believe 2011-12-20
  • 打赏
  • 举报
回复
是字段的名字,这两个已经分别给赋值,但是提示的是另外一个字段没有赋值,而提示的字段在表中不存在
缘中人 2011-12-20
  • 打赏
  • 举报
回复
从提示判断username肯定是没赋上值,

FParentID
HouseCode
这两个不是字段名么
kaikai_kk 2011-12-20
  • 打赏
  • 举报
回复
qryHouseParent查询:select userid,username,userage from users

添加数据时也用qryHouseParent(虽然更新用的是UpdateSQL1),但查询的3个字段都见不到userid,username,userage
而FParentID,HouseCode却不知道从那跑出来的?

而错误提示,明显就是username要有赋值,你在考大家是吧? 我实在看不懂啊!!!!
Believe 2011-12-20
  • 打赏
  • 举报
回复
我还在等着答案。。。。

2,496

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧