字段显示问题(30分)

  • 主题发起人 主题发起人 林枫
  • 开始时间 开始时间

林枫

Unregistered / Unconfirmed
GUEST, unregistred user!
我的表里有一个字段名为hint,Type为A。
我要让编辑框显示这个字段,写这样的代码:statusbar1.Panels[1].text:=query1.parambyname('提示').asstring;
报错,提示:paramter 'hint' not found
但我改成这样:statusbar1.Panels[1].text:=query1.fieldbyname('提示').asstring;
就没问题。
这是为什么?
还有,当我用:
query1.sql.clear;
query1.sql.Add('update ibook set 次数=10');
query1.execsql;
结果所有记录的'次数'字段都改成了10,如果我只想更改当前的记录,应该怎么写?
 
老大分真多,又开了一贴[:D]
 
query1.sql.clear;
query1.sql.Add('update ibook set 次数=10');
query1.execsql;
结果所有记录的'次数'字段都改成了10,如果我只想更改当前的记录,应该怎么写?

你没有使用Where当然就是全部都Update了。
 
statusbar1.Panels[1].text:=query1.parambyname('提示').asstring;//这句出错是因为你的query没有这个参数
statusbar1.Panels[1].text:=query1.fieldbyname('提示').asstring;//这就对了


query1.sql.clear;
query1.sql.Add('update ibook set 次数=10');
query1.execsql;
这样写想完成你说的功能显然是错的,
应该是这样的
query1.sql.Add('update ibook set 次数=10 where 条件');
这个条件是为了定位你所需要修改的这条记录而写的条件
不过不加就是对整个表作update

 
parambyname指的是query中SQL用到的参数,调用方法是
query1.parambyname('提示').asstring:=edit1.text;
fieldbyname指的是query中SQL要查询的字段,调用方法是
edit1.text:=query1.fieldbyname('提示').asstring;

“update ibook set 次数=10”修改的肯定是所有的记录了,
如果你要修改某几条记录或者当前记录,要这样写:
update ibook set 次数=10 where ....;//要加上where条件
 
我也遇到这样问题,用access建表时,当把字段设为中文时,也只能用fieldbyname(‘姓名’)

'update ibook set 次数=10 where id=当前记录'
 
接受答案了.
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
I
回复
0
查看
376
import
I
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部