我的意思是把本地表中info表中的修改记录的密码更新到服务器上的“职工”表的相应记录(职工编号一致)的密码。
代码如下 adoconnection1连接本地的access数据库
        adoconnection2连接服务器的sql数据库    执行报错“超时已过期”。错误出在第二句:
   //用新导入的表更新服务器上的“职工”表
adoconnection2.Execute('update 职工 set 职工.密码=zhi.密码 from 职工,zhi where 职工.职工编号=zhi.职工编号');
    如果有别的解决办法也请大家帮忙。
    我不知道是不是adoconnection1.CommitTrans未执行,所以adoconnection2找不到zhi这个临时表。
if not adoconnection1.InTransaction then
       adoconnection1.BeginTrans;
if (not adoconnection2.InTransaction)then
       adoconnection2.BeginTrans;
       try
      //将本地表上的数据选择导入服务器并建一新表
       adoconnection1.Execute('select * into zhi in [ODBC][ODBC;Driver=SQL Server;UID=sa;PWD=654321;Server=systembase;DataBase=分公司;] from info');
      //用新导入的表更新服务器上的“职工”表
       adoconnection2.Execute('update 职工 set 职工.密码=zhi.密码 from 职工,zhi where 职工.职工编号=zhi.职工编号');
      //删除服务器新导入表
       adoconnection2.Execute('drop table zhi');        
      //将本地表数据更新
       adoconnection1.Execute('update 职工 set 修改标识=0 where 修改标识=1');
       adoconnection2.CommitTrans;
       adoconnection1.CommitTrans;
       except
       if adoconnection2.InTransaction then adoconnection2.RollbackTrans;
       adoconnection1.RollbackTrans;
       exit;
       end;