vb向数据库中添加记录的问题 50
以一个条件打开一个数据库得到相关记录集合,然后添加到相关数据库中,这个相关记录集合中的数据,一部分在目标数据库中存在一部分不存在,要求的结果是插入不存在的,使目标数据库存...
以一个条件打开一个数据库得到相关记录集合,然后添加到相关数据库中,这个相关记录集合中的数据,一部分在目标数据库中存在一部分不存在,要求的结果是插入不存在的,使目标数据库存在的记录同相关记录集合中的完全一致。现在我使用的方法是在vb中调用sql语言来实现,但是有网络延迟的时候,就用以出现故障。
想请问大家在vb中使用addnew方法,在添加记录时如果记录存在,就覆盖原记录,或者有没有什么更好复制方法,或者解决这个问题的办法,谢谢了。
3楼的朋友,查询是否存在是不是一定要打开一次数据库这样会不会很慢
4楼的朋友,我已经使用sql语言成功操作了,关键是网络延迟以后,在vb中大量调用sql回导致语句失败,因此我想使用vb本身的dao功能实现,希望大家帮忙~我知道,Execute方法就可以实现调用sql语言,我现在就是这样实现的,但是vpn有网络延迟的时候,就会出现网络一般性错误,所以我想将大多的运行负担加载到本记上执行。
5楼的朋友,谢谢你的回答,关键是打开后如何比价,我的纪录集大概有3000多左右吧,可能其中有几百个是需要目标纪录中没有的,其余的是需要的,我总不能循环3000次,并且打开和关闭3000次数据库来比较纪录呀~有什么好的操作方法吗?谢谢了。 展开
想请问大家在vb中使用addnew方法,在添加记录时如果记录存在,就覆盖原记录,或者有没有什么更好复制方法,或者解决这个问题的办法,谢谢了。
3楼的朋友,查询是否存在是不是一定要打开一次数据库这样会不会很慢
4楼的朋友,我已经使用sql语言成功操作了,关键是网络延迟以后,在vb中大量调用sql回导致语句失败,因此我想使用vb本身的dao功能实现,希望大家帮忙~我知道,Execute方法就可以实现调用sql语言,我现在就是这样实现的,但是vpn有网络延迟的时候,就会出现网络一般性错误,所以我想将大多的运行负担加载到本记上执行。
5楼的朋友,谢谢你的回答,关键是打开后如何比价,我的纪录集大概有3000多左右吧,可能其中有几百个是需要目标纪录中没有的,其余的是需要的,我总不能循环3000次,并且打开和关闭3000次数据库来比较纪录呀~有什么好的操作方法吗?谢谢了。 展开
5个回答
展开全部
用ADO就行了,DAO一点也不好用。
可以把查询的结果存在一个自定义的记录里。然后打开目标数据库(Dim Con As ADODB.Connection
Dim rs As ADODB.Recordset
Set Con = New ADODB.Connection
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\db1.mdb;Persist Security Info= False"
Con.Open strCon
Set rs = New ADODB.Recordset
strsql = "select * from 品番 "
rs.Open strsql, Con, adOpenKeyset, adLockOptimistic
)打开后,可以比较有没有重复的,没有的话可以用addnew增加记录。
可以把查询的结果存在一个自定义的记录里。然后打开目标数据库(Dim Con As ADODB.Connection
Dim rs As ADODB.Recordset
Set Con = New ADODB.Connection
strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db\db1.mdb;Persist Security Info= False"
Con.Open strCon
Set rs = New ADODB.Recordset
strsql = "select * from 品番 "
rs.Open strsql, Con, adOpenKeyset, adLockOptimistic
)打开后,可以比较有没有重复的,没有的话可以用addnew增加记录。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
"以一个条件打开一个数据库得到相关记录集合 " 可以用into table 语句来建一个新的表,。
update 语句也可以更新原有数据。
“但是有网络延迟的时候,就用以出现故障。 ” 不知道什么情况,不懂
update 语句也可以更新原有数据。
“但是有网络延迟的时候,就用以出现故障。 ” 不知道什么情况,不懂
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不能覆盖的.如果存在就对信息进行修改,要想实现像覆盖那样的功能 只有用存储过程实现.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
在写入之前先查询是否存在,
如果不存在则不执行INSERT ,
如果存在 则执行update ,
具体的找资料,我只能给你思路。
如果不存在则不执行INSERT ,
如果存在 则执行update ,
具体的找资料,我只能给你思路。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
貌似
select * from b where id not in(select id from a) into a
就可以实现。
大量调用????
用dao调用这一句就实现了所有记录的更新。唉~!
不明白你想要什么效果。QQ:158726165
select * from b where id not in(select id from a) into a
就可以实现。
大量调用????
用dao调用这一句就实现了所有记录的更新。唉~!
不明白你想要什么效果。QQ:158726165
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询