2个表之间的传输太慢了,如何解决? |
尚未結案
|
lwd188
一般會員 發表:13 回覆:33 積分:9 註冊:2005-02-11 發送簡訊給我 |
还得麻烦各位前辈:
以下是我的一段代码:(我用的是Sccess数据库,用的Ado链接.现在有2个结构完全的数据库:一个是主本"局直管房数据库.mdb"另一个是"FB副本110.mdb",我想从副本里的表"户"往主本里的表"户"里传.主本数据库里的表"户",有12万条记录,一共是258M,副本是78M.一次传输下来得用3分多钟,太慢了,不知各位前辈有什么好办法,能快一些.表的一些属性我是这么设的:ADOQuery6.CursorLocation:=clUseServer;)
procedure TForm1.Button3Click(Sender: TObject);
var
str,str1,str2,str3,id:string;
begin
str:= 'Select * Into bb in "c:/fcms/局直管房数据库.mdb" From 户';
ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(str);
ADOQuery6.ExecSQL;
if ComboBox5.Text='协议租金上传' then
begin
str:='update 户,bb set 户.协议计租月份=bb.协议计租月份,户.维修基金当月尾欠=bb.维修基金当月尾欠,';
str1:='户.维修基金本年尾欠=bb.维修基金本年尾欠,户.维修基金历年尾欠=bb.维修基金历年尾欠,户.维修基金本年尾欠收入=bb.维修基金本年尾欠收入,户.维修基金历年尾欠收入=bb.维修基金历年尾欠收入,户.协议租金当月尾欠=bb.协议租金当月尾欠,';
str2:='户.协议租金本年尾欠=bb.协议租金本年尾欠,户.协议租金历年尾欠=bb.协议租金历年尾欠,户.协议租金本年尾欠收入=bb.协议租金本年尾欠收入,户.协议租金历年尾欠收入=bb.协议租金历年尾欠收入';
str3:=' where (户.房籍号=bb.房籍号)';
ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(str);
ADOQuery6.SQL.Add(str1);
ADOQuery6.SQL.Add(str2);
ADOQuery6.SQL.Add(str3);
ADOQuery6.ExecSQL;
end
else
begin
str:='update 户,bb set 户.计租月份=bb.计租月份,户.公房租金当月尾欠=bb.公房租金当月尾欠,';
str1:='户.公房租金本年尾欠=bb.公房租金本年尾欠,户.公房租金历年尾欠=bb.公房租金历年尾欠,户.公房租金本年尾欠收入=bb.公房租金本年尾欠收入,户.公房租金历年尾欠收入=bb.公房租金历年尾欠收入,户.公房租金本年冲销=bb.公房租金本年冲销,';
str2:='户.公房租金历年冲销=bb.公房租金历年冲销';
str3:=' where (户.房籍号=bb.房籍号) and (户.改变用途=true)';
ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(str);
ADOQuery6.SQL.Add(str1);
ADOQuery6.SQL.Add(str2);
ADOQuery6.SQL.Add(str3);
ADOQuery6.ExecSQL;
str:='update 户,bb set 户.计租月份=bb.计租月份,户.公房租金当月尾欠=bb.公房租金当月尾欠,户.公房租金本年尾欠=bb.公房租金本年尾欠,户.公房租金历年尾欠=bb.公房租金历年尾欠,';
str1:='户.公房租金本年尾欠收入=bb.公房租金本年尾欠收入,户.公房租金历年尾欠收入=bb.公房租金历年尾欠收入,户.公房租金本年冲销=bb.公房租金本年冲销,户.公房租金历年冲销=bb.公房租金历年冲销,';
str2:='户.维修基金当月尾欠=bb.维修基金当月尾欠,户.维修基金本年尾欠=bb.维修基金本年尾欠,户.维修基金历年尾欠=bb.维修基金历年尾欠,户.维修基金本年尾欠收入=bb.维修基金本年尾欠收入,户.维修基金历年尾欠收入=bb.维修基金历年尾欠收入';
str3:=' where (户.房籍号=bb.房籍号) and (户.改变用途=false)';
ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(str);
ADOQuery6.SQL.Add(str1);
ADOQuery6.SQL.Add(str2);
ADOQuery6.SQL.Add(str3);
ADOQuery6.ExecSQL;
end;
str:='Drop Table bb' ;
ADOQuery6.SQL.Clear;
ADOQuery6.SQL.Add(str);
ADOQuery6.ExecSQL;
application.MessageBox('正确!','数据整理完毕!',MB_OK);
end;
|
Vicen
高階會員 發表:13 回覆:145 積分:151 註冊:2005-03-14 發送簡訊給我 |
|
lwd188
一般會員 發表:13 回覆:33 積分:9 註冊:2005-02-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |