delphi与sql serever2005数据库的问题

来源:百度知道 编辑:UC知道 时间:2024/06/19 09:54:28
我用delphi连接数据库(sql server 2005),数据库中有两张表B1和B2。B1中有一个主键属性 “职工号”,B2中有主键属性 “职工号1”,且“职工号1的外码是“职工号”。当我在delphi做的前台输入数据时,(界面如下)
职工号后面的输入框里本来有一个数据(char[6]),我输入新的数据后,按增加按钮,如果原来的数据出现在B2表的“职工号1”里,系统就会提示错误(大概就是与B2表中的“职工号1”属性有冲突);如果原来的数据没有出现在B2的“职工号1”里,就没有错误,而且能正常保存到数据库中。我想请高手帮帮忙,怎样解决这个问题。另外“增加”按钮里代码是这样的procedure TForm2.Button1Click(Sender: TObject);beginif dbedit1.Text ='' thenbeginshowmessage('职工号不能为空!');endelsebeginadoquery1.Last;adoquery1.Insert; end; 本人对delphi语言不是很熟悉,希望高手们仔细说明解决方法,如果要修改代码请附上代码。解决问题我会多加分的,谢谢 !!!
有点建议的就可以回答,我着急解决问题啊

麻烦大家给我点代码,在下感激不尽!!!!!

因为你设置了[职工号]为主键,当然不能插入重复值了
建议职工号不能由用户添加,由系统给定

你是要在原有的职工号里添加信息还是重新添加职工号所有信息呢?如果是在原有的职工号里添加那么就将表B1里的职工号对应的输入到表B2里。如果是重新添加所有信息包括职工号也添加的话 应该不需要2张表吧?一张就可以了

你的问题描述不清楚。产生错误的原因应该是这样的,表B1与表B2的主键值不能为空(NULL)且不能重复,adoquery1.Insert; 时表的主值为NULL,如果此时保存肯定会出错的。

“如果原来的数据没有出现在B2的“职工号1”里,就没有错误,而且能正常保存到数据库中。”,你要把段代码贴出来。