回 帖 发 新 帖 刷新版面

主题:程序需要进行数据库的添加记录,发生这样的错误

运行时出现了这样的错误:
Project Project1.exe raised exception class EDBEngine Error with message 'Key violation.

[Microsoft][ODBC Microsoft Access Driver]由于将在索引、主关键字、或关系中创建重复的值,请求对表的改变没成功。
General SQL error.
改变该字段中的或包含重得数据的字段中的数据,删除索引或重表定义索引以允许重复的值并再试一次。


我在程序中写的是:

Table2->Insert() ;
Table2->FieldByName("License")->AsString=Edit1->Text;
Table2->Post() ;
Table2->Refresh() ;

错在哪里?

回复列表 (共5个回复)

沙发

可能是你插入时违反了实体完整性或参照完整性吧

板凳

那请问该怎么解决呢?我还是不太明白。

3 楼

Table2->Edit();
Table2->Insert() ;
Table2->FieldByName("License")->AsString=Edit1->Text;
Table2->Post() ;
Table2->Refresh() ;
这样试一下吧!
可能你的Databasename不正确吧!

4 楼

是你的EDIT控件中的数据与数据库中的某条记录的该字段的内容相同,发生冲突!
解决办法:
1、如果你的这个字段允许重复的数据,那么就把数据表中该字段的“索引”该成“有重复”,或者把该字段的主键设置取消。
2、如果你的这个字段不允许重复的数据,那就不要输入重复数据。

5 楼

Table2->EditKey();
Table2->FieldByName("License")->AsString=Edit1->Text;
if(Table2->GotoKey())
   Table2->Edit() ;
else
   Table2->Insert() ;
Table2->FieldByName("License")->AsString=Edit1->Text;
Table2->Post() ;
试试看,应该就可以了



我来回复

您尚未登录,请登录后再回复。点此登录或注册