【CBM666 请教 SQL 数据同步备份问题 谢谢】
vb吧
全部回复
仅看楼主
level 13
cbm666 楼主
SQL 数据添加问题 我就卡在这里了 请教各位高招 谢谢
我用循环能够完美解决 大问题是 效率问题
两个表 RS RS2 结构完全一样
要将RS2数据全部添加到RS 但是如果RS表里面 ID 已存在则跳过 不能添加
感谢各位帮助
2015年12月06日 01点12分 1
level 7
效率慢可以用多线程,把数据处理丢给后台
2015年12月06日 02点12分 2
谢谢你 我考虑过后台处理 ,SQL联线状态实时检测 我用的就是 【多进程】效果很好的 ,但是我现在只想知道VB6就没有可用的语句来执行 不重复添加的动作? 我纳闷的就是DOS下操作Novel数据库 这个问题一行语句就能解决 然而VB6操作SQL就那么麻烦??感谢你的关心
2015年12月06日 03点12分
level 11
老师有没有想过这个思路,不想添加已经存在的ID还有一种办法就是在表RS2里不产生这个记录。如果iD设置为主键,当产生和的ID和前面相同的时候就会报错,能不能处理这个错误让它不报错,直接不添加就行了。如果老师的主键不是ID,而且别的,那么可以再创建一张表,那张表只要储存所有的ID,且主键就是ID,每次产生的数据要记录先在这张表记录ID,如果可行在把记录在RS表中生成。
就是不知道能不能用处理那个报错,小弟没试过……
2015年12月06日 03点12分 3
谢谢你
2015年12月06日 06点12分
level 11
给个思路试试。id按顺序查询出来,按大小分段,只需检测原表最大id试下。
2015年12月06日 05点12分 4
谢谢你
2015年12月06日 06点12分
level 13
cbm666 楼主
这是最笨的代码 使用循环将本地st.mdb数据库里面的STorder这张表里面所有的数据 判断不重复的订单编号字段STorderNo 添加到SQL数据库里面的STorder这张表
下面代码可以顺利达到目的 但就是 效率 问题,慢死了
就是因为没效率 所以我想优化 学习SQL高级语句 不使用循环 就这么简单
Private Sub Command1_Click()
Call LinkLocal
Call OpenLocalMDB(Rs, "StOrder")
Call LinkSQL
Call OpenSQL(Rs2, "StOrder")
'*****************************************
If Rs.RecordCount = 0 Then Exit Sub
'***************************************
Rs.MoveFirst
For i = 0 To Rs.RecordCount - 1
DoEvents
If SearchDATA(Rs2, "STorderNo", Rs.Fields("STorderNo")) = False Then
Rs2.AddNew
For j = 0 To Rs.Fields.Count - 1
If Not CheckIsNull(Rs.Fields(j)) Then Rs2.Fields(j) = Rs.Fields(j)
Next j
Rs2.Update
End If
If Not Rs.EOF Then Rs.MoveNext
If Rs.EOF Then Exit For
Next i
MsgBox "添加完成!", vbOKOnly, "数据库不重覆添加测试"
End Sub
2015年12月06日 06点12分 5
1