关于TQuery本地数据库的删除问题(50分)

  • 主题发起人 主题发起人 MicroZeng
  • 开始时间 开始时间
M

MicroZeng

Unregistered / Unconfirmed
GUEST, unregistred user!
如题, 要求删除(本地的) Query1(使用文件:FileName)中 字段名 为 Mtype的所有纪录.
我写如下语句:

1.

with Query1 do
begin
Active := False;
SQL.Text := 'select * from FileName where Mtype ="1" ';
ExecSQL;
Open;

first;
wihle not EOF do
begin
Edit;
Delete;
end;

// 接下来, 不知如何存盘.
// 如果使用: Edit; Post; 会产生一条空纪录
// 如果使用: Post; 则: Error, Query1 not in Edit mode!

end;

2.

with Query1 do
begin
Active := False;
SQL.Text := 'Delete From FileName where MType="1" ';
ExecSQL;

//出现Error : Error Creating Cursor Handle; 为什么?
.......

end;


请各位大虾帮忙!
 
第二个问题我自己解决了.
错误的原因在于:
ExecSQL;后我加了一条<font color="red">Open;</font>而导致Error Creating Cursor Handle.
 
first;
wihle not EOF do
begin
Edit; <=====EDIT干吗? 直接DELETE就行了. 把这行去掉. 也不用POST.
Delete;
end;
 
直接用SQL 语句删除 , 我替你改一下!
with Query1 do
begin
// Active := False;
// SQL.Text := 'select * from FileName where Mtype ="1" ';
SQL.Text := 'Delect From Filename where Mtype='1'
ExecSQL;
// Open;
//
// first;
// wihle not EOF do
// begin
// Edit;
// Delete;
// end;

// 接下来, 不知如何存盘.
// 如果使用: Edit; Post; 会产生一条空纪录
// 如果使用: Post; 则: Error, Query1 not in Edit mode!

end;
 
delete * from FileName where Mtype ="1"
不就完事了吗?
 
请问各位大虾:
用Query控件做数据库编辑时, 常会出现"not in Edit or Insert mode".
究竟在什么样的情况下,才能编辑呢?
我知道的有: 不能用Order语句和Query1.RequesLive := True.
还有别的吗?
 
query1.edit;
可以使queryk控件进入编辑状态
 
query1.edit
难道不知道吗?
 
with Query1 do
begin
Active := False;
SQL.Text := 'select * from FileName where Mtype ="1" ';
ExecSQL;
Open;
first;
while not EOF do
begin
// Edit;
Delete;
refresh;
end;
end;
end;

Note:query1.requestlive:=true
 
如果 cachedupdates:=false 那可以不要refresh;
 
" 用Query控件做数据库编辑时, 常会出现"not in Edit or Insert mode".究竟在什么样的情况下,才能编辑呢?
我知道的有: 不能用Order语句和Query1.RequesLive := True.还有别的吗?"

得分来也!

告诉你:
对于桌面数据库(Xbase,paradox...)

1.只能有一个表.
2.不能用order by.
3.不能使用Sum,Avg类的聚集函数.
4.不能在Select 中使用计算字段.
5.where子句只能以列名称和数量常数组成.

对于SQL数据库

1.只含一个表.
2.不能用order by.
3.不能使用Sum,Avg类的聚集函数.

书上是这么说的.




 
No need with "Edit;"
 
多人接受答案了。
 
后退
顶部