现在的要求是,客户利用vb+access数据库录入单据,然后每天或者隔天把数据传到服务器的SQLServer上,通常的方法就是做循环,把一条一条单据数据及其明细项目读出来,然后Insert到SqlServer上,但是非常担心中间网络出问题以及其他不可预测的错误,导致数据出错,要是几百条数据中,在传输过程中终止了,不知道那些数据传输成功,那些不成功。我打算做一个标志字段,当insert成功后,就update access数据库中的标志字段,标示为已经上传。但是这也涉及到一个单据对应多条明细项目,还有现在是要对两个conn(一个为access,一个为SQLServer)的操作,如何更好的使用rollback功能,请各位大虾多多指教!

解决方案 »

  1.   

    以前有位同事做的一个方案是,分支机构用Excel录入固定格式的数据,每月做一次服务器的汇总,就把这个Excel文件上传,并且通过数据库中记录该机构已经上传Excel及文件名称,然后就做循把这些机构的Excel文件汇总,一个一个单元格读取,然后相加,在进入服务器的数据库。但是我们现在的MDB数据库,处理起来有点不同。我们得想办法另外生成一个MDB数据库或者其它文件(XML)等等,然后上传服务器,再控制服务器汇总。这样搞起来也挺多复杂的,除非已经有现成的程序。而且涉及双向方面,这种方法好像也不太适合吧!至于我现在的做法,由于时间不多,只能用最苯的方法了。打算读取一条数据从access读取,然后insert 到SQLServer,之后再 Update access中的这条记录State字段,标记为成功,才真正提交 SQLServer的 Insert语句,出错就rollback Insert语句,这样一条一条慢慢传,断了也不管了,下次继续把State不成功的记录传输,出错率应该会小些。一般的销售分店-总店之间这样的传输应该没问题吧,但我的数据中还有图片,可能一个记录都会有200k左右,担心ing阿!希望多多讨论,一起研究吧!