当前位置:主页>销售管理软件> 列表

把本机数据库的数据写到另外一台机器的数据库中??? 找如何使用财务软件

财务软件版1楼: Computer2为另外一台机器,DB为Computer2的数据库。
try
ADOConnection.BeginTrans;
ADOCommand.CommandText := ''insert into Computer2.DB.dbo.Table2 select * from Table2'';
ADOCommand.Execute;
ADOConnection.CommitTrans;
ShowMessage(''成功'');
except
ADOConnection.RollbackTrans;
ShowMessage(''失败'');
end;
执行后出现错误: Ole/DB provider returned message:无法在此会话中启动更多的事务

2楼: 把事务去掉试试看! 如酒店管理软件

3楼: 看情况是因为你已经启动了一个事务,所以不能在BeginTrans,
把程序改成:
try
if not AdoConnection.InTransaction then
ADOConnection.BeginTrans;
ADOCommand.CommandText := ''insert into Computer2.DB.dbo.Table2 select * from Table2'';
ADOCommand.Execute;
ADOConnection.CommitTrans;
ShowMessage(''成功'');
except
ADOConnection.RollbackTrans;
ShowMessage(''失败'');
end;
或者直接检测是否在事务中,如果在的话先Commit,然后再重新开始一个事务!

4楼: to royal1442:不加事务好使,但是我必须加事务呀,因为有好几个表的数据要导。
to icelovey: 还是出那个 “无法在此会话中启动更多的事务 ”错误。

往别的机器里写数据是不是属于分布式呀? -_-!! 不太知道?

5楼: 大家做过这样的程序吗? 从 A 机器 往 B 机器里写数据。这个问题真是郁闷呀 T_T

6楼: try
if AdoConnection.InTransaction then Exit;//如果已经处于事务中,跳出函数

ADOConnection.BeginTrans;
ADOCommand.CommandText := ''insert into Computer2.DB.dbo.Table2 select * from Table2'';
ADOCommand.Execute;
ADOConnection.CommitTrans;
ShowMessage(''成功'');
except
ADOConnection.RollbackTrans;
ShowMessage(''失败'');
end;

财务软件版7楼: if AdoConnection.InTransaction then Exit;//如果已经处于事务中,跳出函数
不是吧?这可也行,在事务中要继续呀 不能跳出呀。

8楼: 把数据库放到一台机器上,然后用触发器或者存储过程导数据应该很容易吧

9楼: if AdoConnection.InTransaction then Exit;//如果已经处于事务中,跳出函数


不是吧?这可也行,在事务中要继续呀 不能跳出呀。

如果上一个事务没有完成,不可能再让你进行新的事务的!

10楼: 那就让它完成,进行新的事务呀。跳出干什么呀???

11楼: 用batchmove吧,如果数据不需要处理
,很简单而且快速!

12楼: to popzhu:
能实现我要的结果? 给个例子好吗 :) 如如何使用财务软件

13楼: 不过这是bde连接方式,
几个参数设置一下destination 目的表
mode 选择转换模式
source 可以是取源数据的query
只要BatchMove1.Execute就会自动转!

财务软件版14楼: 那完了 我用的是 Ado 连接 T_T

15楼: 那你也试一下,可以告诉大家!

16楼: 能解决这个问题,再加300分。

17楼: 多人接受答案了。