Главная страница
    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.012 c
3-47154
oleg_d
2002-06-17 17:15
2002.07.15
Многострочный insert


3-47147
Blunder
2002-06-25 07:16
2002.07.15
Выполнение SQL скриптов из приложения


1-47425
VJar
2002-07-02 23:50
2002.07.15
Программная обработка ListBox


14-47669
Андриянов Денис
2002-06-09 19:04
2002.07.15
Есть ли такая библиотека которая делает возмо


1-47416
Gayrus
2002-07-02 03:36
2002.07.15
bpl файлы





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский