Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка удаления [D5, Accses]


RDA ©   (2002-09-14 10:10:00) 

Пытаюсь удалить запись в таблице Accses, при этом вылетает такая ошибка: EOleException with message "Невозможно найти указанную строку дляобновления, некоторые значения были изменены со времени ее последнего чтения" - и это после добавления этой строки (Insert) и сразу сохранения (Post). Вижу ее в гриде. После повторного запуска проги - все работает нормально. Если кто-нить знает что сия ошибка означает - буду очень признателен за помощь.


sniknik   (2002-09-16 13:15:00) [1]

а попробуй Append вместо Insert, в Append можно сразу значения передать из формы (тогда вместо DBEdit простой Edit использовать). если без изменения логики то пустые значения поставь и посмотри.

кстати Insert никаких ошибок не выдает? пустые значения без автоинкремента - должен.

я к примеру стараюсь не пользоватся такими функциями (мало ли как ADO их интерпретирует) вместо этого сам SQL комманду составляю вроде
INSERT INTO dtproperties (Fields) VALUES (Values)
и все работает как ожидалось.


RDA   (2002-09-16 11:57:00) [2]

>>Lola
Не помогло. Есть у кого идеи.


RDA   (2002-09-16 11:42:00) [3]

Я конечно попробую, но что-то смысла пока не понял.


Lola   (2002-09-16 11:26:00) [4]

Я же тебе писала, перед Post вставь например :
Table1.FieldByName("Name").AsString:=DBComboBox1.Text;


RDA   (2002-09-16 10:42:00) [5]

>>Johnmen
Последовательность действий такая:
Insert
Post
Delete <<Вышеприведенная ошибка


Johnmen   (2002-09-16 10:14:00) [6]

>Пытаюсь удалить запись .....
>.... - и это после добавления этой строки (Insert) и сразу >сохранения (Post)

Я вот почитал твой вопрос и не понял, удаление или добавление ?
Подробно опиши последовательность действий...


RDA   (2002-09-16 10:05:00) [7]

Да все нормольно создается, записи добавляються, отображаются в визуальных компонентах, автоинкрементное поле тоже есть, но от этого не легче - проблема осталась.


Lord Warlock   (2002-09-16 09:19:00) [8]

Из собственного опыта работы с Access -

если в таблице нет автоинкрементного ключевого поля (его можно завести и не отображать), то в аццессе начинаются чудеса, подобные вышеприведенным, и не только с добавлением и удалением, но и с редактированием.

И еще насчет процесса добавления - компонент PLAT как-нибудь присоединяется к run-time created форме или нет?


LordOfSilence   (2002-09-16 09:06:00) [9]

Александр, попробуйте поиграть со свойствами
CursorLocation и CursorType.


Lola   (2002-09-15 12:25:00) [10]

Я увидела, что запись добавлена, а значания полям не присваиваются? Боюсь, что и автоинкрементного поля нет, да?


RDA   (2002-09-15 11:16:00) [11]

Ну неужели некто не может подсказать что здесь не так?


RDA   (2002-09-15 09:11:00) [12]

>> Сори...ошибка
procedure TfmArhiv.AddButClick(Sender: TObject);
begin
PLAT.Insert;
if ShowPlat=True then PLAT.Post
else PLAT.Cancel;
end;


RDA   (2002-09-15 09:09:00) [13]

>> Lola и всем хорошим людям.
Кусок добавления:

function ShowPlat:Boolean;
var
fmPlat:TfmPlat;
begin
fmPlat:=TfmPlat.Create(Application);
try
if fmPlat.ShowModal=mrOk then Result:=True
else Result:=False;
finally
fmPlat.Free;
end;
end; //На форме обычные компоненты доступа к полям базы типа DBEdit.

procedure TfmArhiv.AddButClick(Sender: TObject);
begin
if ShowPlat=True then PLAT.Post
else PLAT.Cancel;
end;


Lola   (2002-09-14 13:37:00) [14]

Кусок добавления и записи, пожалуйста...


RDA   (2002-09-14 13:32:00) [15]

Пробовал - не помагает, т.к. таблица уже находиться в состоянии dsBrowse.

Вот кусок кода

function Question_Delete(Table:TADOTable):Boolean;
begin
if not Table.IsEmpty then
begin
if (Application.MessageBox("Вилучити запис?","Підтвердження",
MB_YESNO+MB_ICONQUESTION)=idYES) then Result:=True
else Result:=False;
end
else Result:=False;
end;

procedure TfmArhiv.DelButClick(Sender: TObject);
begin
if Question_Delete(PLAT)=True then PLAT.Delete;
end;


Lola   (2002-09-14 13:25:00) [16]

Конечно же было легче, если бы был кусок кода, но пока попробуй после Post сделать Refresh


Наверх

Титульная страница Поиск, карта сайта Написать письмо