小弟想修改BatchMove控件的原代码(100分)

  • 主题发起人 主题发起人 szwgl
  • 开始时间 开始时间
S

szwgl

Unregistered / Unconfirmed
GUEST, unregistred user!
小弟目前碰到一个问题,在处理把一个本地表中的数据传到远程时,使用到了
batchmove控件,总供有8000条数据需要传送,传送了6000多条,batchmove
产生了一个错误,general sql error.然后就停止传送后面没有传送的数据
了!
我想当某一条数据传送不成功可以继续处理后面的数据。请问怎么解决这个问
题。另:还有没有其他方法解决传送的问题!
 
BatchMove1.AbortOnProblem:=False
 
很多数据库可以装入ASCII文本数据文件,如Oralce,Sql Server.
你可把数据转成文本格式,再传送,速度不一定比BatchMove慢.
 
谢谢leechange和rss
请问RSS,如何用程序实现你的想法,手工的传数据的方式有多种的。
 
不用谢!
本人以为rss的方法不是太好.
(rss:今天我两好象对什么问题都有不同意见,争论仅仅限于学术,交个朋友吧:-) )
 
程序实现,用不着手工.
Batchmove可把你的数据表转成Ascii文本模式.
再用Winexe("...",SW_HIDE)调数据库的装入程序装Ascii文件.
应该可行.
 
rss:
谢谢你,我犯了一个错误,没有把问题说清楚。如果要时时更新本地表的
数据到远程表的话,您的解决方案,是否是最佳的呢?谢谢您。
由于今天第一次登陆,分数不多,请谅解。
 
上来就给一半的家产,真阔气!
"时时更新"  你别把rss气死
 
"
(rss:今天我两好象对什么问题都有不同意见,争论仅仅限于学术,交个朋友吧:-) )
"

真理就是争论出来的,很愿意和同道交朋友.

我坚持自己的看法,请想一想,BatchMove是怎样做的,它是读一条记录,构造一条
插入的语句,插入数据库的,效率可想而知.

而使用数据库带的数据装载工具肯定要快的多,
更复杂更有效的方法就是数据库本身因人而异了.




 
LeeChange:
我已经改为
batchmove.abortonproblem:=false;
还是不行!怎么办?
我想修改Batchmove的原代码,可以吗?
 
What kind of error ?
Only "General SQL error" ?
Try to get more info by using EDBEngineError.Errors[]

1. Try to test your data: batchmove to local alias
2. Try to test your network connnection: FTP
3. If this action will taken only a few times, use some utils
such as dbExpl32 in RXLib(export/import).
If you use SQL db, use transfer/dump
4. Don't alter the source code unless you headed a bug:
That's a stupid idea. You can inherite a new class.
5. I think: transfering a file is more reliable than using
a remote db connection.
 
随便灌些水,见笑啦:-)
opq的english很让我佩服,我赞成rss和opq观点,网络间数据传递以文件方式为佳,连接请求信息少,数据传递在速度和效率上随着记录的增加有明显提高。
 
同意热rss.
在本地检索所需要的数据集到临时表.然后直接传送临时表文件.
 
有没有更快的更新方法.(除rss的Ascii文件的方法).
 
Rss:
再提一个问题.ok?!
 
如果我懂, 请提吧.
 
rss:
就是我的数据库本地是经常更新的,需要将每天的更新数据传到
远程,您觉得如果按您的解决办法可行吗!
 
"本地经常更新,每天传到远程"
我的数据库就是这样的.
我是利用Windows的计划任务,每天定时运行一个更新数据库的程序.
我说的方法还不是最好的,应该可以利用数据库自身提供的方法,SQL Srever
Oracle都有自己装入数据的程序,
我还见过一个别人的程序,他说是用存储过程+自定义扩充函数实现.
我的能力帮你至此。

 
rss:
你再不回答我,我会给很少的分了!
 
"我的能力帮你至此." -- 再次重申.

可别拿我当大虾,我是Delphi大菜鸟。水平很差的。

看看真大虾们能不能帮你。Sorry!
 
后退
顶部