为什么通过操作TDBGrid来修改TQuery中的记录时,单表可以改多表则不能改? (50分)

  • 主题发起人 主题发起人 Vinson
  • 开始时间 开始时间
用TTable吧,很直接
 
tquery.RequestLive:=Ture,然后就可以在tdbgrid中修改数据了.
 
你还可以加入一个tupdatesql控件,把tquery的updateobject属性设为你加入的tupdatedql控件
 
我不想用Ttable,而hbezwwl和墨剑的方法都不行,TDBGrid的表格总是被锁住了不能输入信息,还有其他方法吗?
 
hbezwwl的方法是不能在程序中设置
如:
procedure TForm1.Button1Click(Sender: TObject);
begin
Query1.RequestLive:=True;
end;
只能在编程时设置RequestLive为True;
 
直接在TDBGrid中修改后不能立即更新数据库,即使用
Query1.Edit;
Query1.Post;
都是不能立即更新的,请问怎么解决?
 
什么叫不能立即更新?你改了之后数据还是不变?这样的话不就是没改吗?但我怎么可以
立即更新?
或者重新读这个表之后,数据就变了?如果这样的话,你就用select * from (yourtable)
试试啊!
建议:多看看书啊
 
我的意思是TDBGrid的数据变了,但Tquery调用的数据库没有改变,只有当程序退出时才变。
 
Query.Close;
Query.Open;
 
如果你用的是ADO的话,将数据集的LockType的属性设为ltOptimistic,这样你在DBGRID
中所作的更改只要一移动记录的指针就会马上更新到数据库中去。
要想Tquery也变,用Query.Requery
 
为什么TQuery.RequstLive:=True对多表操作不起作用?

Query1.Close;
Query1.SQL.clear;
Query1.SQL.Add('Select * From A0,A1 Where A0.Sample_No=A1.Sample_No Order By Sample_No,Submit_Date');
Query1.Open;
打开数据后在TDBGrid中不能输入数据,但如果是对单表操作时是可以的,这是怎么回事?
 
bde/idapi在4。5版之后只允许程序员使用一个tquery处理xbase系列的数据库。
要想修改,只能用updatesql了。
 
TUpDateSQL怎么用?(对于TDBGrid);
 
呵,你看看李维的书吧!系统应用篇!
 
我讲一下Tupdatesql的用法。
把dbgrid对应的query的updateobject属性指向此tupdatesql控件,在打开tupdatesql控件,点击
generate sql按钮就行了
 
多人接受答案了。
 

Similar threads

D
回复
0
查看
891
DelphiTeacher的专栏
D
D
回复
0
查看
859
DelphiTeacher的专栏
D
D
回复
0
查看
808
DelphiTeacher的专栏
D
S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部