能否用"TQUERY"进行增加,删除,修改操作?(50分)

  • 主题发起人 foxdelphi
  • 开始时间
F

foxdelphi

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位:
能否用"TQUERY"进行增加,删除,修改操作,具体如何实现,请各大虾具体回答,
小弟谢了!
 
增加:
insert into databasename(fieldname1,fieldname2...)
values(field1value,field2value...)
删除:
delete from database
where 条件
修改:update database
set fieldname=fieldvalue

 
当然可以!sql语句如下:
with query1 do
begin
close;
sql.clear;
sql.add('');//加入语句见后面
prepare;//提高sql语句的执行性能
execsql;//此处不能用open
end;
注:1 增加语句
insert into gongzi values(888,张三)
解释:向工资库增加编号为888,姓名为张三的一条记录;
2 删除语句
delete from gongzi where bianhao='888'
解释:删除工资库编号为888的记录
3 修改语句
update gongzi set name='张太大' where bianhao='888'
解释:将工资库中编号为888的人名改为张太大
 
把TQuery的RequestLive属性设置成True.
然后可以用Append、Delete、Edit、等函数进行操作。
 
不建议:>------把TQuery的RequestLive属性设置成True
这个方法对query中的语句有很多限制(因为此时是用local sql解析),比如不能关联几个表,
不能有"field1 as '名称'"和" select substring(field2,2,2) "类似的语句

最正统也最灵活的方法是放一个UpdateSql控件,并将query的updateobject指向此控件,cacheupdate
设置成True 双击UpdateSql打开属性编辑器设置相关的增 删 改 语句
就变成了一个类似于table一样的可编辑的数据集,
***但记住:此时的POST只是到内存,真正提交到数据库要用applyupdates + commitupdates
两个方法,再具体的话看online help!!!

还有一个方法就是用dataset provider+clientdataset来处理 如同多层.

 
//插入
with Query do
begin
SQL.Clear;
SQL.Texe:='insert into TableName(Field1,Field2,Field3) '
+'values('''+Edit1.text+''','''+Edit2.text+''','''+Edit3.text+''')';
ExecSQL;
end;
 
请教各位:
小弟要操作三个表,是否用TQUERY+UPDATESQL去实现,如何实现
 
对亚,TQuery+TUpdateSQL可以实现
你看一下Delphi的帮助,
把TQuery和TUpdateSQL关联起来,然后双击TUpdateSQL就可以配置
Delete Update Insert语句。
 
to :foxdelphi
说具体一点吧.
 
to 李大嘴:
无论是否需要用UpdateSQL控件,都必须把Query的RequestLive设为True,而UpdateSQL也不一定和Query用,也可以和Table用
用了UpdateSQL控件也不一定需要把cacheupdate设成True.
 
to:aizb
----无论是否需要用UpdateSQL控件,都必须把Query的RequestLive设为True
错,
用RequestLive时可以修改,cacheupdate可有可无,有的话可以用两段式提交,更安全,
易于控制数据有效性和提高数据库处理效率,强烈推荐用于 非本地数据库的情况.
而且RequestLive好象拥有比updateobject更高的优先级,同时设的话等于只设了RequestLive
------而UpdateSQL也不一定和Query用,也可以和Table用
我没有说不可以, :)
----用了UpdateSQL控件也不一定需要把cacheupdate设成True.
错,一定要cacheupdate,你得到的假象参考第一条


另:你的名字好象常见到,建议发言前最好试验一下,可以让初学者少走弯路,这应该是
我们对自己的基本要求.





 
小弟多谢李大嘴大哥!
 
顶部