烦到了极点,有兴趣的进来瞧瞧。(200分)

  • 主题发起人 主题发起人 babysheep
  • 开始时间 开始时间
P_W_Q:
你的方法很好,速度很快,我算学到点东西了。可是结果还是一样,1900条只能插入
471条。提示是主键重复。
我想有可能是Anubis99所说的资源占用问题,但是这时候应该如何去释放资源呢?
它正在循环中。
 
15000条记录的表已经用以上方法转录成功,太感谢了,但是1900条记录的表硬是主键
重复,但是在源表找了老半天就是没有重复的数据,为什么阿???
 
可能問題出在你的查詢出來的結果集上,也就是有源表中有相同內容的記錄
 
delphi 有个控件叫 batchmove 就专门是为了数据批量导入的,你真笨!
 
不应该是数据量的问题,
有没有直接使用SQL语句试试的.应该可以的.
 
zhangxzh:
不知道你看了前面的讨论没有,我不是说过就是因为batchmove会因为处理不了单引号
问题而不能使用吗?
P_W_Q:
不好意思,我一时看昏头了,用你的方法的时候,我没有对那个15000条记录的表所有字段
进行循环,只插了一个字段的数据,后来改过来以后,发现出现的错误和我写的那个程序
是一样的,速度也慢了很多。
QuotedStr这个函数会把两个单引号加到字段的值中,所以我把它去掉了,我想知道你加这个
函数的用意是什么,请指教。
 
P_W_Q:
源表中没有重复,我已经查了很多遍了,用sql语句查了很多次,但是转录过去以后(把
关键字去掉),就会发现有一条重复的记录。我觉得是不是因为占用资源太大,导致指针
混乱(哈哈)?
 
我用BATCHMOVE转过,没遇到问题。
 
如果字串中有單引號,那么在插入字串到后台時可能會出現引號不匹配錯誤,那看你的SQL Server
的設置是用單引號還是雙引號
我導過30多萬條記錄的表,用我的的方法OK,不存在占用資源太大,指針混亂的問題,
你可以在SQL Explore中用Sql 語句查詢一下你表中的實際記錄數
再用你的源表中的Sql語句在SQL Explore查詢一下看看記錄數是多少,不要認為你寫的沒錯,
往往問題就出在你認為沒錯的地方

 
凭我的经验,不是程序的问题,应该是数据的问题,从这方面着手!
 
试试把SQL Server中主键字段长度改大一些,可能有不可见字符存在
 
P_W_Q:
问一个挺白痴的问题,在sql server中如何设置单引号和双引号?
很感谢你的批评,我会继续努力的。
至于为什么会出错,我希望能够继续讨论下去,我也会不断学习下去。
 
数据问题我也查了很多很多次,我也实在不知道为什么。
比如说,错误提示说某个编号的数据重复,错误发生在第399条语句中,我把这个编号记下来,
发现源表中只有一条记录,没有重复,然后我把那条记录删除,再次运行,发现同样的错误,
但是位置在398条sql语句中,但是这个编号在源表又是只有一个的。我都快疯了。
后来我们把数据导到stringgrid中,先导编号,然后再导其他字段,发现一个奇怪的现象,
就是当到达错误点,也就是399条sql语句的时候,那个编号变成了乱码。但是我还是不能
解释为什么会这样,有谁碰到过这种问题?
 
P_W_Q:
你看这样好不好,我把那个dbf表给你,然后你看一下到底是什么问题,我也觉得我自己
好白痴,搞了好几天还是没能解决这个问题,真的希望你能够帮助我。
 
谁有兴趣要这个dbf,可以拿回去试试,大家交流一下。
 
OK,發過來我看看!
pwq@ckcorp.com.cn
 
差点发了没有压缩的过去,没有压缩的有8mb,压缩过以后是7百k,麻烦你解压了:)
 
做之前,是否有先清空目标表?
 
amsea:
清空了,看来我的程序是白贴了
 
P_W_Q:
忘了告诉你了,在sqlserver中,N2是关键字
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
后退
顶部