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

Вниз

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

 
VAleksey   (2002-06-07 15:51) [0]

Использую связку сабж.
Справочник
ID, Name
+ string
Добавляю новую запись > делаю ApplyUpdates.
Тут же удаляю эту же запись > делаю ApplyUpdates.
Вылетает ошибка: Update Filed. В обработчике исключения получаю вот такой текст ошибки: "Operation aborted"
Почему так происходит ?


 
kaif   (2002-06-07 16:00) [1]

К меня та же ошибка происходила в комбинации TIBQuery+TIBUpdateSQL. Избавился переходом на TIBDataSet. Так что, возможно, это не ошибка логики, а ошибка самого компонента TUpdateSQL и всех его наследников. Хотя боюсь на этом настаивать.


 
Lusha   (2002-06-07 16:08) [2]

А ID случаем не AutoIncrement?


 
VAleksey   (2002-06-07 16:12) [3]

2 Lusha © (07.06.02 16:08)
Да, я понял, что в этом дело, но нельзя ли это обойти ?


 
VAleksey   (2002-06-07 16:14) [4]

2 Lusha © (07.06.02 16:08)
или присвоить Old_Id свое значение ?


 
Lusha   (2002-06-07 16:22) [5]

>VAleksey © (07.06.02 16:12)
1. Создать таблицу с одной записью, где в соответствующих полях хранить значение автоикрементного ключа...
2. Перечитывать таблицу после операции вставки...
3. Избавиться от операции удаления в логике БД. Ибо все изменения в ХОРОШЕЙ БД должны прослеживаться от начала до конца и протоколироваться... Для этого достаточно заменить операцию удаления в бизнесс правилах на операцию вставки (читай добавление новой заключительной версии записи). Тоже самое с модификацией и вся Ваша БД будет одна сплошная вставка... :)


 
VAleksey   (2002-06-07 16:27) [6]


> Lusha © (07.06.02 16:22)

Мудрость твоя не знает границ 8). Да уж нажил я себе геморойчик !


 
kaif   (2002-06-07 16:37) [7]

ХОРОШИХ баз не бывает, так же, как не бывает абсолютного блага или абсолютно неэластичного спроса. Бывают наилучшие решения конкретных задач. База, в которой не бывает DELETE нарушает стандарт SQL ANSI-92, в котором есть DELETE.
Простите за резкость...


 
Lusha   (2002-06-07 16:46) [8]

>kaif © (07.06.02 16:37)
База, батенька, нарушать стандарт не может... Нарушить стандарт может производитель СУБД отклонившись от него при разработке спецификации ее языка... А еще надо быть внимательней и на смайлики внимание таки обращать...

P.S. Практически для всех систем, в разработке которых я принимал участие, вариант №3 был бы наиболее приемлем...


 
kaif   (2002-06-07 17:19) [9]

Я понимаю, что ANSI-92 это не стандарт для базы, а стандарт движка-интерпретатора. Но я просто хотел намекнуть, что если любой движок поддерживает DELETE, значит это не есть бесполезная вещь, функционального аналога которой не должно быть в "ХОРОШЕЙ" базе.
Представим себе базу данных (Paradox, как у задающего вопрос), в которую пользователь добавляет с его точки зрения интересные ссылки на ветки этого форума. Например, чтобы завтра на них еще раз взглянуть. Нужно быть сумасшедшим, чтобы утверждать, что "ХОРОШАЯ" база должна хранить эти ссылки вечно.


 
Lusha   (2002-06-07 17:24) [10]

>kaif © (07.06.02 17:19)
Да-а-а? Ну, тогда я сумасшедший... :)


 
kaif   (2002-06-07 17:33) [11]

>2 Lusha © (07.06.02 17:24)
:)
Наверно, я заработался. Нельзя быть таким серьезным...
Эту ветку предлагаю сохранить навечно. Для надежности скинуть ее на 2 CDRW.



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

Форум: "Базы";
Текущий архив: 2002.07.01;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.007 c
14-1169
MaximatorVeter
2002-05-22 18:34
2002.07.01
Подкиньте работу!


14-1213
Oleon
2002-05-28 12:59
2002.07.01
Проблемы с округлением.


1-1014
HitMan
2002-06-20 18:15
2002.07.01
Выравнивание в StringGrid


1-1009
Dead User
2002-06-20 16:31
2002.07.01
Канва формы


1-942
Янушка
2002-06-17 18:01
2002.07.01
Динамическое изменение положения label





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