一个简单的问题。(200分)(200分)

  • 主题发起人 主题发起人 DelphiUser
  • 开始时间 开始时间
D

DelphiUser

Unregistered / Unconfirmed
GUEST, unregistred user!
请问:
我的Query2.DataSource:=Query1;
Query2的SQL为“select * form Table1 where StuNo=:StuNo”
Query2.RequestLive:=True;
Query2.UpdateObject:=UpDateSQL1;
为何我点DBNavagitor的Insert, Modify, Delete按钮是它
执行的并不是UpdateSQL1中的InsertSQL,ModifySQL, DeleteSQL中的语句。

顺便看看<a href="http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=163766" target="_blank">这里也是200分</a>
 
select * form Table1 where StuNo=:StuNo
~~~~ ~~~~~
from table*.StuNO
 
调用UpDateSQL1.apply
 
这跟
Query2.RequestLive:=True;
有影响.
 
一般tupdatesql不需要写insert/delete/update, 是自动的.
 
我的UpdateSQL和InsertSQL中先有两个判断语句,判断某个字段是否可以被修改。
 
可以实现你的要求
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
if button=nbinsert then
begin
updatesql1.Apply(ukInsert);
end;
query1.close;
query1.Open;
end;
 
不能自动执行TUpdateSQL中的语句吗?
 
如果不调用updatesql1.Apply(ukInsert),就会出现你所说的现象
因为击DBNavagitor的Insert按钮时,会首先插入空记录,而不会调用
updatesql1的sql语句
 
Query2的SQL为“select * form Table1 where StuNo=:StuNo”
Table1是你的数据库名?还是控件名???
StuNo=:StuNo 说明你要按代参数查询.
因而在Edit,Delete前必须要给此参数赋值,否则去对那一条纪录处理哪?
Query2.UpdateObject:=UpDateSQL1;一句一般不用加.
 
同意Liu JZX。
 
insert/delete/update,是自动的.他们有自己的执行代码。
procedure TForm1.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);可重写这个事件。
TNavigateBtn:nbinsert。nbdelete。nbupdate;
 
接受答案了.
 
后退
顶部