我现在用下面的方法来修改表中的AA字段,但速度很慢,处理1万条数据要2小时.
(BDE+Sybase11.5) for i := 0 to Table1.RecordCount - 1 do
begin
Table1.Edit;
Table1.FieldByName('AA').AsString:=aid[i];
Table1.Post;
Table1.Next;
end; 有什么好的方法吗?
还有,存储过程在这里有用吗?(因为朋友跟我说用存储过程)
(BDE+Sybase11.5) for i := 0 to Table1.RecordCount - 1 do
begin
Table1.Edit;
Table1.FieldByName('AA').AsString:=aid[i];
Table1.Post;
Table1.Next;
end; 有什么好的方法吗?
还有,存储过程在这里有用吗?(因为朋友跟我说用存储过程)
解决方案 »
- 请教关于delphi中格式化输出的问题
- 如何解决OpenDialog无法打开“Internet 快捷方式” (*.url)文件的问题?
- 谁有tvAPIThing的代码,Google,baidu都没有找到下载?
- 关于流媒体压缩的问题xvidcore的问题
- 太可恶,这个http://www.365base.com提供的fastReport是adware.borlan病毒(散分)
- 如何知道数据库表中哪个字段为关键字段与允许空值得字段(在线)
- delphi调用拨号网络问题
- ★怎样让PC喇叭发出“Bi”的一声?
- 请问这几句代码是什么意思?是几句关于消息的语句,应该怎样学习消息?
- 怎样获得本机的IP地址
- 请问一个备份问题
- 如何解决一个关于权限的问题。
BEGIN
IF NOT EOF THEN
BEGIN
EDIT;
FIELDBYNAME('AA').ASSTRING:=AID[RECNO-1];
POST;
NEXT;
END;
END;
table1.DsableControls;
在循环之后
table1.EnableControls;应该可以快些
for i := 0 to Table1.RecordCount - 1 do
begin
Table1.Edit;
Table1.FieldByName('AA').AsString:=aid[i];
Table1.Next;
end;
Table1.Post;
table1.EnableControls;
BEGIN
WHILE NOT EOF DO
BEGIN
EDIT;
FIELDBYNAME('AA').ASSTRING:=AID[RECNO-1];
POST;
NEXT;
END;
END;
应该自己构造SQL语句,直接ExecSql是最快的.
甚至可以构造一个更新多条记录的SQL,更快一些.
如果DisableControls了,其他用户还可以操作这个数据表吗?
HELP里是这样说的:
Usually DisableControls is called within the context of a try...finally block that reenables the controls even if an exception occurs.
水平有限,请高手帮忙一下
用sql 比较快一点了
请问ado怎样连接Sybase,不要告诉我是用ODBC连.如果能用ADO就好啦