Здравствуйте, есть проблема в записи в базу данных:
Код:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | procedure TForm1 . Edit5KeyPress(Sender: TObject; var Key: Char );
begin
if key = # 13 then
ADOQuery1 . SQL . Clear();
ADOQuery1 . SQL . Text:= 'INSERT INTO table1 ([Name],[Numb],[Dept],[Info],[Noth]) VALUES (:Param1,:Param2,:Param3,:Param4,:Param5)' ;
ADOQuery1 . Parameters . ParamByName( 'Param1' ).Value:=Edit1 . Text;
ADOQuery1 . Parameters . ParamByName( 'Param2' ).Value:=Edit2 . Text;
ADOQuery1 . Parameters . ParamByName( 'Param3' ).Value:=Edit3 . Text;
ADOQuery1 . Parameters . ParamByName( 'Param4' ).Value:=Edit4 . Text;
ADOQuery1 . Parameters . ParamByName( 'Param5' ).Value:=Edit5 . Text;
Adoquery1 . ExecSQL;
AdoQuery1 . Close;
AdoTable1 . Active := false ;
AdoTable1 . Active := true ;
Label1 . Caption:=Edit1 . Text;
end ;
|
Если в последний Edit поставить один символ, то все нормально записывается, а если поставить два, то - ошибка "Изменения не были успешно внесены из-за повторяющихся значений в индексе и т.д."
Поле Noth в таблице текстовое, ввожу тоже текст, ключа на нем нет. Даже если убрать Edit5, Param5 и поле Noth, то ругаться будет на предыдущее поле.