打开TQuery的时候显示Invaild field ...(10分)

  • 主题发起人 主题发起人 Thinboy
  • 开始时间 开始时间
T

Thinboy

Unregistered / Unconfirmed
GUEST, unregistred user!
打开TQuery的时候显示Invaild field ...

如果我在TQuery使用Select Field1,Field2 From Table
设RequestLive=True,当打开这个Query的时候,就出现
Invaild Field Field1,field2....之类的!

但是当我改成Select * From Table的时候,就很正常
或者把RequestLive=False吧,也没事儿!

在论坛上找了很多文章,解决方法一般来说都是使用
UpdateSQL,但是我觉得它不够方便,可不可以
既使用Select Field1....(因为表中可能会有很多Field,
不可能使用*吧),又可以不用updateSQL(写这个东西并不方便)
就可以直接修改数据呢?当然RequestLive=True吧!这倒没所谓!
在修改数据这一点上,TQuery就比不上TTable灵活了!

谢谢!
在此仅把我的所有分数献上,因为这个问题都挺急的,我等不及
分数多的时候了!就麻烦各位了!
谢谢!
 
field1,field2是不是打错了?
与requestlive无关
 
field的名字是否是保留字?
 
没遇到过这问题,把具体代码贴上来。
 
我试了一下,没有的事情
可能
1,你的字段名大错了
2,你是否用了中文的字段名字,有时候中文回出错
 
可以看看DELPHI关于requstlive的帮助说明
好象不是select * from ...的话就不支持requestlive

使用TQUERY最好还是用UPDATE更新的好,否则很麻烦。
 
Thinboy,我没碰见这个问题。
是不是字段写错了。
 
tupdatesql不需要写代码, 只要设定query.updatesql=它就可以了.
注意要select的字段中要有关键字段, 否则会出问题.
 
To cytown:
select的字段中要有关键字段, 否则会出问题.
一定吗?
 
你的QUERY中有错误的字段名,双击query,删除全部字段或重新放一个query
 
可能是你用了中文字段名
要用TQuery修改数据库也很容易啊。
写Insert或Delete或Update(甚至Create)语句,
然后用Query.ExecSQL执行就可以了。
 
>>删除全部字段或重新放一个query
与DataSource相连的TDBEdit,TDB..的FieldName是否正确?
 
pxlei: 是这样的, 如果你没有包含关键字, 查询时当然没有问题, 但如果修改时,
如果有两个记录是一样的, 如姓名都是"pxlei", 性别都是"M", 如果没有id之类的
关键字的话, 要把其中一个改名为'pmlei', 那么怎么能实现呢??? :-)
所以, 如果有重复记录, 一定要增加关键字, 否则会出错.:-(
 
我想cytown是对的,

如果RequestLive为True,但字段中不包括关键字段,
那么数据回写时如何定位呢?

因此Select *时正常,RequestLive为False时也正常。。。
 
后退
顶部