莫名奇妙的问题,请大家帮忙!
问题是这样出现的:我有240个左右的mdb(access)的表,其表结构都是相同的,每个表里面都是一条记录了,我要把他们导入到一个oracle表里面,但导入的时候有时候导入成功,有时后导入就自动跳出程序,无法调试出是什么错误,感觉很简单的一个程序,折腾我好几天了,请有相关经历的xdjm给点建议!
我的导入过程:mdb中有70个列左右
for i=1 to mdb的个数
生成mdb的连接串
open mdb中的表并读取记录------有时调试到这里程序就象值行完一样没反应了(open)
打开oracle表
写记录update------写记录是一个循环myrec.fields(i).value=....这样的了
关闭几个recordset,关闭mdb的connection
set nothing
next
自己分析了一下,出问题就在update和open 那一块儿
问题点数:100、回复次数:9Top
1 楼starsoulxp(星魂)回复于 2004-09-03 10:57:57 得分 0
不成功的情况是不是固定?连接字符串有没有问题?Top
2 楼starsoulxp(星魂)回复于 2004-09-03 10:58:39 得分 0
还有update语句,是不是跟记录内容有关,所以才出错Top
3 楼LGYAN(紫衣随想)回复于 2004-09-03 11:03:30 得分 10
读取记录时不用Open打开,而是用Execute执行SQL语句!Top
4 楼online(龙卷风V4.0--决战江湖(MS MVP-VB))回复于 2004-09-03 11:09:49 得分 20
建议你先把240个左右的mdb(access)的表的数据全部读出来,保存在文本文件中
因为连接的数据库太多了
然后再导入到oracle表,可以像sqlserver中的bulk insert直接将文本导入数据库,速度快
Top
5 楼cuizm(射天狼 http://www.j2soft.cn/)回复于 2004-09-03 11:22:39 得分 20
同意ONLINE的意见!!(是一种解决办法)
另外,如果你不打算这样做,你也不能在循环中创建与销毁连接对象(set nothing)啊,
这样频繁的开辟与释放内存,估计会出现问题的!!Top
6 楼of123()回复于 2004-09-03 11:24:52 得分 50
你的方法有问题。系统的虚拟内存(包括磁盘临时文件)操作跟不上。
改用 Execute SQL 的方法,等于把命令放到数据库引擎的命令队列中,让它自己完成。Top
7 楼chenbo2020(钱途渺茫的男人)回复于 2004-09-03 14:40:24 得分 0
恩,感觉上面online(龙卷风V2.0--再战江湖)cuizm(射天狼) of123() 三位的方法不错了,我也怀疑是不停的开关有问题了,我先试一下了Top
8 楼RUKYO(蠢蠢的男子汉 - 恋星夜柔光,舔烈酒豪情)回复于 2004-09-03 17:54:04 得分 0
这样频繁操作是会导致不稳定的,online又给我们上了一课,学习!Top
9 楼chenbo2020(钱途渺茫的男人)回复于 2004-09-06 11:46:30 得分 0
ok,搞定了Top




