以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]sqlserver 受PRIMARY KEY 约束后,在FT中插入不正常  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=39313)

--  作者:pengjiam
--  发布时间:2013/8/21 14:17:00
--  [求助]sqlserver 受PRIMARY KEY 约束后,在FT中插入不正常

1、在SQL SERVER 中的表中部分字段做了PRIMARY KEY 约束,以保障唯一标识数据库表中的每条记录;

2、我在FT的窗口中调用该表,要对表进行插入操作,一般情况下受primary key约束的字段需要系统提供;

3、可提供的值系统根本不认

怎么办?

 

顺便提供案例,请用其中的窗口3进行测试

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:hq.rar


--  作者:Bin
--  发布时间:2013/8/21 14:19:00
--  
primary key 只能是_Identify列 不能是其他
--  作者:狐狸爸爸
--  发布时间:2013/8/21 14:26:00
--  
建议主键用自动增量列,名称可以是_Identify,可以是其他
[此贴子已经被作者于2013-8-21 14:26:37编辑过]

--  作者:shiqiso
--  发布时间:2013/8/21 16:00:00
--  
原来如此
--  作者:pengjiam
--  发布时间:2013/8/21 16:13:00
--  

我用的SQL SERVER 2000版的数据库。在定义表时已对表中的关键字段进行了限制,有的表关键字段可以只有一个,用于唯一区别记录,实现不容许重复的目的。有的表可能需要2个或以上字段来限制记录的唯一性。使用_Identify不能达到目的,特别是多个字段确定记录的唯一性时。


--  作者:狐狸爸爸
--  发布时间:2013/8/21 16:18:00
--  

去掉这些多字段的唯一约束,在foxtable中用代码来控制重复输入吧:

 

http://www.foxtable.com/help/topics/2481.htm

 


--  作者:pengjiam
--  发布时间:2013/8/21 16:27:00
--  

我想该问题应该好解决,毕竟我是在FT中进行插入行。或FT中addnew()能带参数也可以,参数包括主要字段及其内容,与sql中insert into类似。


--  作者:pengjiam
--  发布时间:2013/8/24 5:51:00
--  使用DataRowAdding事件不能全部解决问题

 

1、  表中约束字段有2个:单号、项次

2、  通过专门的COMOBOX控件来改变单号的值,第一进入该控件后在表中新增一行,并把comobox的值付给表中的单号;(见程序)

3、  可以通过↓键新增行;

问题是:首次进入comobox控件后所选的值有误的情况下,再重选后,不能改变表中的“单号”( ValueChanged中replacefor不起作用),如在表中新增了几行后,再次进入comobox控件去选中新单号后,又可以改变表中的单号了(ValueChanged中replacefor又起一定作用,但不稳定)。

 

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:hq.rar