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

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

TQuery+TUpdateSQL


Kudatsky ©   (2002-06-17 14:04:00) 

При попытке выполнить метод TQuery.ApplyUpdates появляется сообщение "Update failed". Изменения не сохраняются.


kudatsky   (2002-06-18 16:10:00) [1]

Написал, вот он:
procedure TForm3.Query1AfterPost(DataSet: TDataSet);
begin
Query1.ApplyUpdates;
end;

То же самое...


Lusha   (2002-06-18 15:35:00) [2]

>VAleksey © (18.06.02 14:49)
Если получить после Update Failed сообщение об ошибке используя
e.Message то сообщение будет (по моему, специально не проверял) более вразумительное.

Не будет... Это исключение генерирует сам компонент...


VAleksey   (2002-06-18 14:49:00) [3]

напиши обработчики события на AfterDelete & AfterPost где
вызывай ApplayUpdates
ЗЫ
Если получить после Update Failed сообщение об ошибке используя
e.Message то сообщение будет (по моему, специально не проверял) более вразумительное.


kudatsky   (2002-06-18 13:53:00) [4]

А как DBGrid-ом редактировать файл ?


Lusha   (2002-06-18 12:50:00) [5]

>kudatsky (18.06.02 10:52)
А чего демонстрировать то? У Вас вполне рабочий примерчик... Только нельзя записи одинаковые добавлять, пункт 1 моей первой реплики... А после добавления новой записи пользователь должен обязательно нажать BitBtn1 прежде чем пытаться ее изменить - 2 пункт моей первой реплики...

А уж, как обеспечить соблюдение этих пунктов решать Вам... :)


kudatsky   (2002-06-18 10:52:00) [6]

Уважаемые коллеги !
Не пришлёт ли мне кто-нибудь простенькую демонстрашку ?
У меня Delphi 5

Заранее благодарю !


Desdechado   (2002-06-18 10:34:00) [7]

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

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


kudatsky   (2002-06-18 10:31:00) [8]

Это DBF-файл


fool   (2002-06-18 10:12:00) [9]

У тебя что ли нет ключевого поля? Обычно в условии Where проверка по ключу Key=:Old_Key, и соответственно оно само не меняется.


kudatsky   (2002-06-18 09:53:00) [10]

Структура таблицы
FILENAME CHARACTER 12
EDITOR CHARACTER 12
NAME CHARACRER 50
=============================================================
Тексты запросов
update "statusid.dbf"
set
FILENAME = :FILENAME,
EDITOR = :EDITOR,
NAME = :NAME
where
FILENAME = :OLD_FILENAME and
EDITOR = :OLD_EDITOR and
NAME = :OLD_NAME
----------------------------------------------------------------
insert into "statusid.dbf"
(FILENAME, EDITOR, NAME)
values
(:FILENAME, :EDITOR, :NAME)
----------------------------------------------------------------
delete from "statusid.dbf"
where
FILENAME = :OLD_FILENAME and
EDITOR = :OLD_EDITOR and
NAME = :OLD_NAME
----------------------------------------------------------------
Изменения применяются по завершении редактирования, перед закрытием файла.

procedure TForm3.BitBtn1Click(Sender: TObject);
begin
Query1.ApplyUpdates;
Query1.Close;
end;


VAleksey   (2002-06-18 06:22:00) [11]

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


Приятель   (2002-06-17 17:51:00) [12]

А правильно?


kudatsky   (2002-06-17 16:34:00) [13]

Сгенерил.


fool   (2002-06-17 15:44:00) [14]

А ты сгенерил запросы в UpdateSQL(InsertSQL, ModifySQL)?


kudatsky   (2002-06-17 14:34:00) [15]

dbf-файлы


Lusha   (2002-06-17 14:33:00) [16]

Причин тому бывает несколько...
1. Неверные тексты запросов в TUpdateSQL - модификации подвергаются более одной записи...
2. Неверная работа с кэшируемыми записями... Например, добавление и последующая модификация записи минуя сохранение внесенных изменений ApplyUpdates между этими операциями...

Первое, что пришло на ум... :)


VAleksey   (2002-06-17 14:19:00) [17]

Базы ?


Наверх

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