Win2003Server, SQLServer2000+SP3, Delphi7, MDAC2.7
但还是不能用ADODataSet.DeleteRecords(arAll)这条语句,这是为什么,
于是我就干脆用Delete语句删除,但到最后一条记录时,就出错,后发现记录是删除了,但为什么还是要报错。
看了好多以前的帖子,要么是用SQL语句直接解决,要么是说更新什么的。我都照做,问题依旧
12 个解决方案
#1
有没有判断为EOF啊..
#2
那还用说
开始是这样 ADODataSet.DeleteRecords();报错后改为:
if ADODataSet.IsEmpty then
Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
开始是这样 ADODataSet.DeleteRecords();报错后改为:
if ADODataSet.IsEmpty then
Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
#3
这样吧
if ADODataSet.Eof == true then
Exit;
ADODataSet.First;
while ADODataSet.Eof == true do
ADODataSet.Delete;
if ADODataSet.Eof == true then
Exit;
ADODataSet.First;
while ADODataSet.Eof == true do
ADODataSet.Delete;
#4
TO: rikky(读书、心知、生活)
不明白你是什么意思
不明白你是什么意思
#5
if ADODataSet.Recordcount<1 then Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
#6
if ADODataSet.Recordcount<1 then Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
if adodataset.recordcount>0 then
adodataset.delete;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
if adodataset.recordcount>0 then
adodataset.delete;
#7
while not adodataset.eof do
begin
...
end;
begin
...
end;
#8
关键是我想弄明白什么情况下才支持 ADODataSet.DeleteRecords(arAll);
#9
ADODataSet有没有执行联合查询即显示的是多表数据?
#10
没有,就一个表
只是用的BatchOptimization模式的LockType
Cursor是Static的
只是用的BatchOptimization模式的LockType
Cursor是Static的
#11
你的LockType一定为ltBatchOptimistic,且cachesize一定是大于1。这样是会出错的,你只要将cachesize设为1就可以了。我也碰到过。
记得给分。
记得给分。
#12
TO: nnwq(乖仔)
DeleteRecords(arAll)还是不能用
目前的属性:LockType=ltOptimisitic; CursorLocation=clUseClietn; CursorType=ctStatic; CacheSize=1;我用最简单的SELECT * FROM TableName的方法取数据,结果还是“此环境不允许操作”
DeleteRecords(arAll)还是不能用
目前的属性:LockType=ltOptimisitic; CursorLocation=clUseClietn; CursorType=ctStatic; CacheSize=1;我用最简单的SELECT * FROM TableName的方法取数据,结果还是“此环境不允许操作”
#1
有没有判断为EOF啊..
#2
那还用说
开始是这样 ADODataSet.DeleteRecords();报错后改为:
if ADODataSet.IsEmpty then
Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
开始是这样 ADODataSet.DeleteRecords();报错后改为:
if ADODataSet.IsEmpty then
Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
#3
这样吧
if ADODataSet.Eof == true then
Exit;
ADODataSet.First;
while ADODataSet.Eof == true do
ADODataSet.Delete;
if ADODataSet.Eof == true then
Exit;
ADODataSet.First;
while ADODataSet.Eof == true do
ADODataSet.Delete;
#4
TO: rikky(读书、心知、生活)
不明白你是什么意思
不明白你是什么意思
#5
if ADODataSet.Recordcount<1 then Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
#6
if ADODataSet.Recordcount<1 then Exit;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
if adodataset.recordcount>0 then
adodataset.delete;
ADODataSet.First;
while not ADODataSet.Eof do
ADODataSet.Delete;
if adodataset.recordcount>0 then
adodataset.delete;
#7
while not adodataset.eof do
begin
...
end;
begin
...
end;
#8
关键是我想弄明白什么情况下才支持 ADODataSet.DeleteRecords(arAll);
#9
ADODataSet有没有执行联合查询即显示的是多表数据?
#10
没有,就一个表
只是用的BatchOptimization模式的LockType
Cursor是Static的
只是用的BatchOptimization模式的LockType
Cursor是Static的
#11
你的LockType一定为ltBatchOptimistic,且cachesize一定是大于1。这样是会出错的,你只要将cachesize设为1就可以了。我也碰到过。
记得给分。
记得给分。
#12
TO: nnwq(乖仔)
DeleteRecords(arAll)还是不能用
目前的属性:LockType=ltOptimisitic; CursorLocation=clUseClietn; CursorType=ctStatic; CacheSize=1;我用最简单的SELECT * FROM TableName的方法取数据,结果还是“此环境不允许操作”
DeleteRecords(arAll)还是不能用
目前的属性:LockType=ltOptimisitic; CursorLocation=clUseClietn; CursorType=ctStatic; CacheSize=1;我用最简单的SELECT * FROM TableName的方法取数据,结果还是“此环境不允许操作”