我做的是模拟小网络发邮件的
数据库是用ACCESS的,放在共享文件夹下面,客户端发件时就在客户端插入新的数据到数据库里。刚开的时候还蛮快的,一秒就完成了,但是程序开久了,插入的速度就慢很多有时还死掉了~~客户端有9台,有时一起查就可能会有几个不能插入。
怎么办呢?
插入的代码:
with qry1 do
begin
SQL.Clear;
SQL.Add('select * from sender');
open;
append;
sendtime:=now;
fieldbyname('发送时间').AsDateTime:=sendtime;
fieldbyname('发送地址').AsString:=edtip.caption;
fieldbyname('接收地址').AsString:=edtaddr.caption;
fieldbyname('内容主题').AsString:=edttopic.caption;
Tblobfield(fieldbyname('发送内容')).LoadFromStream(ms);
fieldbyname('传送状态').AsBoolean:=true;
fieldbyname('读状态').AsBoolean:=false;
Refresh;
close;
end;
数据库是用ACCESS的,放在共享文件夹下面,客户端发件时就在客户端插入新的数据到数据库里。刚开的时候还蛮快的,一秒就完成了,但是程序开久了,插入的速度就慢很多有时还死掉了~~客户端有9台,有时一起查就可能会有几个不能插入。
怎么办呢?
插入的代码:
with qry1 do
begin
SQL.Clear;
SQL.Add('select * from sender');
open;
append;
sendtime:=now;
fieldbyname('发送时间').AsDateTime:=sendtime;
fieldbyname('发送地址').AsString:=edtip.caption;
fieldbyname('接收地址').AsString:=edtaddr.caption;
fieldbyname('内容主题').AsString:=edttopic.caption;
Tblobfield(fieldbyname('发送内容')).LoadFromStream(ms);
fieldbyname('传送状态').AsBoolean:=true;
fieldbyname('读状态').AsBoolean:=false;
Refresh;
close;
end;
begin
SQL.Clear;
SQL.Add('select * from sender Where 1=2');
open;
append;
sendtime:=now;
fieldbyname('发送时间').AsDateTime:=sendtime;
fieldbyname('发送地址').AsString:=edtip.caption;
fieldbyname('接收地址').AsString:=edtaddr.caption;
fieldbyname('内容主题').AsString:=edttopic.caption;
Tblobfield(fieldbyname('发送内容')).LoadFromStream(ms);
fieldbyname('传送状态').AsBoolean:=true;
fieldbyname('读状态').AsBoolean:=false;
Post;
Refresh;
close;
end;