R
Randolph
Unregistered / Unconfirmed
GUEST, unregistred user!
本人在编写一个数据库应用时需要:
将一台服务器的部分数据传输到另一个城市的服务器中,使用的数据库
是M$ SQL Server 6.5,大概有20个互相联系的表,一个是主表,其它的是
级联的从表,每发送主表的一个记录,必须保证对应在所有从表的记录都要
完整发送,而电话连接不稳定,经常发生断线,速度又慢,远程用户又不能
长时间占用表,因为还有其他用户访问数据库,所以不能采用TBatchMove来
实现,M$ SQL Server 6.5又不能实现
INSERT INTO ServerRemote.DatabaseName.Table
SELECT * FROM ServerLocal.DatabaseName.Table
的功能,我现在采用的是很笨的方法:把本地服务器和远程服务器的表都打
开,然后从头走到尾把本地服务器的记录Insert到远程服务器的表
for I := 0 to RecordCount - 1 do
begin
Database.StartTransaction;
try
SendOneMainRecordAndAllDetailRecords;
Database.Commit;
except
Database.Rollback;
raise;
end;
end;
但这显然很苯,而且在传输几百条记录时经常出现数据库被其他用户访问的
错误而终止,各位有什么好的解决办法吗?
还有,我用一个线程来执行上述功能,但中途终止线程却会“死机”,Why?
将一台服务器的部分数据传输到另一个城市的服务器中,使用的数据库
是M$ SQL Server 6.5,大概有20个互相联系的表,一个是主表,其它的是
级联的从表,每发送主表的一个记录,必须保证对应在所有从表的记录都要
完整发送,而电话连接不稳定,经常发生断线,速度又慢,远程用户又不能
长时间占用表,因为还有其他用户访问数据库,所以不能采用TBatchMove来
实现,M$ SQL Server 6.5又不能实现
INSERT INTO ServerRemote.DatabaseName.Table
SELECT * FROM ServerLocal.DatabaseName.Table
的功能,我现在采用的是很笨的方法:把本地服务器和远程服务器的表都打
开,然后从头走到尾把本地服务器的记录Insert到远程服务器的表
for I := 0 to RecordCount - 1 do
begin
Database.StartTransaction;
try
SendOneMainRecordAndAllDetailRecords;
Database.Commit;
except
Database.Rollback;
raise;
end;
end;
但这显然很苯,而且在传输几百条记录时经常出现数据库被其他用户访问的
错误而终止,各位有什么好的解决办法吗?
还有,我用一个线程来执行上述功能,但中途终止线程却会“死机”,Why?