Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2002.07.15;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.48 MB
Время: 0.013 c
3-47183
GT-9121A
2002-06-19 11:39
2002.07.15
Большой вопрос по работе с базой данных Вставка данных, удаление


1-47283
Floyd
2002-06-30 11:43
2002.07.15
ListBox


1-47426
Дельфятник
2002-07-02 10:59
2002.07.15
Ширина заголовков закладок TPageControl a.


3-47066
Hill
2002-06-19 14:39
2002.07.15
Столбец DBGrid a записать в StringList


3-47148
d_oleg
2002-06-24 20:12
2002.07.15
TpFIBDataSet и multithread





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