Форум: "Базы";
Текущий архив: 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.009 c