读书人

高分求救关于ADO插入数据有关问题与

发布时间: 2012-01-18 00:23:26 作者: rapoo

高分求救关于ADO插入数据问题,与主键有关
环境:VC6 + SQL SEVER2005
方法:
m_pConnection2-> Execute( "Insert into dbo.ttt (id,name) Values ( '2 ', '1 ') ",&RecordsAffected,adCmdText);

m_pConnection2-> Execute( "Insert into dbo.ttt (id,name) Values ( '2 ', '2 ') ",&RecordsAffected,adCmdText);

如果设置了主键id,则程序强行退出,问有没有好的办法,表中数据实在太多,如果插入前先查找的话效率上不能接受

[解决办法]
问有没有好的办法,表中数据实在太多,如果插入前先查找的话效率上不能接受


那你想怎么样,要么插入之前查一下,不然的话,你这么搞肯定有异常的

你要么插入之前检查一下是否主键存在

要么保证你的主键不冲突


[解决办法]
你可以设置一个自增列,并设置不重复的约束,insert的时候,不要显式给此列赋值


[解决办法]
可以增加存储过程。在存储过程中判断是否有主键冲突。如果冲突,可以考虑自动获得最大的不冲突号来解决,或者存储过程返回一个错误信息。在数据库里判断是否冲突效率上肯定比在VC里判断强多了。
[解决办法]
主键id在你插入一条记录时,会自动增加!你不必专门处理主键id!
[解决办法]
但主键id在记录删除后,不会自动减一!
[解决办法]
就用上边的方法,新加一个列,设定为自动增长列,让数据库去管。

读书人网 >VC/MFC

热点推荐