Цитата:
Сообщение от Holy
Ситуация:
Я выбираю данные из таблицы, с двумя полями ID (ключевое Integer) и Name (Char(15)), используя компонент TClientDataSet.
Код:
cdsSelect: TClientDataSet;
...
with cdsSelect do
begin
if Active then
cdsSelect.Close;
CommandText := 'Select ID, Name from TestTable';
Open;
end;
Данные помещаю в локальный набор данных на форме:
Код:
cdsLocal.Data := cdsSelect.Data;
В определенный момент я вставляю новую запись:
Код:
with cdsLocal do
begin
Insert;
FieldByName('ID').AsInteger := 1;
Post;
end;
На Post возникает ошибка EDBClient 'Key violation'.
Хочу обратить внимание, что я работаю именно с локальным набором, не имеющим связи с БД (портфель).
Я пытался менять совойства:
Код:
FieldDefs[0].Attributes := [];
FieldDefs[0].Required;
Fields[0].Required := False;
Fields[0].ProviderFlags := [];
Ошибка осталась.
Кто знает, в чем может быть проблема?
|
А у тебя айди 1 нет в этом датасэте??? Ты даже в локальном ДС не добавиш запись с существующим ID. При условии конечно что это поле PK
__________________
---------------------------------------------
Программирование - не профессия, а стиль жизни
|