谁能够解释我的问题
fstao 2000-05-03 09:23:00 数据库是mssql7
1、
Query1连接“dbo.销售库”,在query1新建一个计算
字段Price(此字段是用来关联dbo.产品库的price),在query1的onCalcFields事件:
with query4 do
begin
close;
sql.clear;
sql.add('select price from dbo.产品库 where id=:id');
parambyname('id').Asfloat:=query1product_id.value;
open;
end;
query1price.value:=query4.fields[0].value;
在button1里写入代码:
query1.close;
query1.open;
在button2里写入代码:
with query3 do
begin
close;
sql.clear;
sql.add('update dbo.产品库 set sign=''yes'' where id=:id');
parambyname('id').Asfloat:=3;
execsql;
end;
运行时,我发现无论按button1多少次,都很慢很慢,但是无论按button2多少次就非
常快。如何解决很慢的问题?
2、
我把query1的price改为lookup字段(price是用来关联query4的price字段),query4连接“dbo.产品库”。
在button1里写入代码:
query1.close;
query4.close;
query4.open;
query1.open;
在button2里写入代码:
with query3 do
begin
close;
sql.clear;
sql.add('update dbo.产品库 set sign=''yes'' where id=:id');
parambyname('id').Asfloat:=3;
execsql;
end;
运行时,我发现无论按button1多少次,都很快,但是第一次按button2就非
常慢,但从第二次开始就非常快。如何解决第一次非常很慢的问题?我就是把
button2的的事件改为用存储过程也一样。
3、
我把button1里代码改为:
with query1 do
begin
close;
sql.clear;
sql.add('SELECT s.salary_no, s.name, p.product_name, s.postalcode, s.address, s.units, s.c_method,A.Area');
sql.add(',s.quantity, s.pam, s.p_level_id, s.g_date, s.memo, s.sign, s.prt_time, s.prt_date, s.press_recorder, s.c_date');
sql.add('FROM Salary_Storage S , product_storage P,Area A where S.Area_id=A.id and S.product_id=p.id and s.id <''4000''');
open;
end;
在button2里写入代码:
with query3 do
begin
close;
sql.clear;
sql.add('update dbo.product_storage set sign=''yes'' where id=:id');
parambyname('id').Asfloat:=3;
execsql;
end;
运行时,我发现无论按button1多少次,都很快,但是第一次按button2就非
常慢,但从第二次开始就非常快。如何解决第一次非常很慢的问题?我就是把
button2的的事件改为用存储过程也一样。
你有什么好的方法?是不是数据库机制的问题呢?