我有一个500条记录的数据库,序号从1到500,且用dbgrid显示出来,现要在中间插入一条记录。我用下面方法时速度很慢。
close;
sql.Clear;
sql.Add('select * from '+tabname+'');
sql.Add('order by 序号');
open;
然后插入一条时,还要将后面的序号加1再排序速度好慢,而且当在最前面插入一条再修改
memo字段(.dfb表)时报错:Invalid BLOB handle in record buffer
希望那位兄弟帮帮我,还有没好的方法。
close;
sql.Clear;
sql.Add('select * from '+tabname+'');
sql.Add('order by 序号');
open;
然后插入一条时,还要将后面的序号加1再排序速度好慢,而且当在最前面插入一条再修改
memo字段(.dfb表)时报错:Invalid BLOB handle in record buffer
希望那位兄弟帮帮我,还有没好的方法。
解决方案 »
- 调用存储过程时返回空值会报错 commandtext does not return a result set
- dblookupcombo显示问题 在线等
- ado数据库联接能不能搞相对路径呀, 请各位帮忙,谢谢
- ADO 连接问题 谢谢 大家 指导!
- com控制器端如何调com服务器端dll中的窗体,让这个窗体在com控制器端的机子上显示?
- 100分,左轻侯大侠的大富翁离线源码解释
- 为什么会这样?
- 特大喜讯.杭州的Delphi爱好者值得一看.请意向者速速速联系.
- dbgrid简单问题
- 急!!!关于delphi 3的报表打印!!!20分!!!
- 高分求助--还原*.BPL控件包为原始代码---的工具和方法??????1000分!
- Access中Nz函数的问题,老提示函数未定义,请教!!
Tstr:string;
begin
with ADOquery1 do
begin
active:=False;
sql.clear;
sql.add('select * from table ');
sql.add('order by 序号');
active:=open;
if RecordCount>0 Then //取出最后一条记录加上1
begin
Last;
Tstr:=inttostr(strtoint(FieldValues['序号'])+1);
end;
else
begin
Tstr:='10001';
Append;
FieldValues['bh']:=Tstr;
end;
end;
end;
Tstr:string;
begin
with ADOquery1 do
begin
active:=False;
sql.clear;
sql.add('select * from table ');
sql.add('order by 序号');
active:=open;
if RecordCount>0 Then //取出最后一条记录加上1
begin
Last;
Tstr:=inttostr(strtoint(FieldValues['序号'])+1);
end
else
Tstr:='10001';
Append;
FieldValues['序号']:=Tstr;
end;
end;
还有你没用adoquery.locktype:=ltBatchOptimistic;
用adoquery.insertrecord
在用updatebatch 试试
另:ych121 是春华吗?偶是yang.