Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.07.15;
Скачать: CL | DM;

Вниз

TQuery+TUpdateSQL   Найти похожие ветки 

 
Kudatsky   (2002-06-17 14:04) [0]

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


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

Базы ?


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

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

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


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

dbf-файлы


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

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


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

Сгенерил.


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

А правильно?


 
VAleksey   (2002-06-18 06:22) [7]

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


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

Структура таблицы
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;



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

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


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

Это DBF-файл


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

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

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


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

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

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


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

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

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


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

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


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

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


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

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

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


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

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

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



Страницы: 1 вся ветка

Текущий архив: 2002.07.15;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.011 c
3-47220
!Daemon
2002-05-31 01:15
2002.07.15
Как определить тип столбца.


3-47086
id_privin
2002-06-20 13:29
2002.07.15
DBF


1-47503
Вадим
2002-07-04 13:04
2002.07.15
HICON и TImageList


1-47412
fissher
2002-07-02 22:04
2002.07.15
TRect


1-47589
vlv
2002-06-28 17:20
2002.07.15
Как получить иконку из exe-файла?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский