Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Внизкаким сделать интерфейс Найти похожие ветки
← →
tchn1 (2004-01-30 03:21) [0]как бы вопрос полаконичнее сформулировать?...
интересно, кто как поступает в такой ситуации?
есть форма, на которой пара гридов, привязанных к паре таблиц mssql. таблицы соотносятся "многие-к-одному".
т.е. нужно завести новую запись в главную таблицу, после этого завести в дочернюю таблицу записи, соответствующие этой новой записи в главной. для связи используется первичный ключ в главной - автоинкрементное поле, значение которой генерится в момент добавления записи на сервере, а не на стороне клиента (в этом-то и загвоздка). для того, чтобы можно было нормально добавлять записи в дочернюю таблицу, требуется, чтобы был сгенерен этот самый идентификатор в главной. получается, что пользователь должен как минимум два раза подтвердить ввод - сначала под главной таблицей, потом под дочерней. а может кто-нибудь придумал как здесь схитрить, и сделать это самое подтверждение только один раз?
← →
Deniz (2004-01-30 06:46) [1]А что в MSSQL нельзя получить ID на клиенте и не использовать автоинкрементное поле? Проблема бы решилась.
← →
tchn1 (2004-01-30 07:26) [2]да можно, но зачем этот геморрой?
← →
Deniz (2004-01-30 07:31) [3]Что значит геморрой? Это у тебя сейчас геморрой для юзера :)
← →
ЮЮ (2004-01-30 07:50) [4]>А что в MSSQL нельзя получить ID на клиенте и не использовать автоинкрементное поле?
По большому счёту нельзя
>сделать это самое подтверждение только один раз
"подтверждение" - это уже из твоего клиента. И кто мешает "слить" код в одно место и не требовать "подтверждение" дважды?
← →
Nikolay M. (2004-01-30 09:15) [5]Вчера ж только было!
http://delphimaster.net/view/3-1075377113/
Рекомендую не делать через @@IDENTITY, как там описывается, а посмотреть [3] и найти ту статью на rsdn.
← →
Deniz (2004-01-30 12:59) [6]> Nikolay M. © (30.01.04 09:15) [5]
Прочитал http://delphimaster.net/view/3-1075377113/ пост Ega23 © (29.01.04 15:31) [5]
"А вообще я в таких случаях не пользуюсь триггерами (кстати, ещё один минус в их сторону. Ну не люблю я их.), а пользуюсь ХП."
Мой вывод(если что поправьте): получается что, из-за "кривой" реализации @@IDENTITY и частично автоинкрементных полей, воспользоваться механизмом передачи на клиента уникального значения сложно, т.е. сам механизм придется реализовывать программисту и следить за уникальностью.
Неужели нет в MSSQL ничего подобного, как генераторы в IB или последовательности в Oracle? Если есть, то покажите пример для tchn1 © (30.01.04 03:21)
← →
Nikolay M. (2004-01-30 14:08) [7]
> Deniz © (30.01.04 12:59) [6]
На sql.ru было много дебатов на эту тему. Ни к чему определенному, помнится, не пришли, только раскололись на несколько лагерей и у каждого были свои аргументы.
← →
Academic (2004-01-30 14:23) [8]При использованиии TADOTable, выставляем своство TableDirect.
В момент добавления записи в главную таблицу сразу же отображается значение IDENTITY.
← →
tchn1 (2004-01-30 23:55) [9]да не пользуем мы ADO, мы юзаем SQLDirect, однака, но какая блин разница?!
> Deniz ©
причем тут генераторы? генераторы тоже срабатывают в момент ПОДТВЕРЖДЕНИЯ ввода, так что ИБ далеко в этом смысле не ушла от MSSQL, да и вообще - MSSQL - нормальная платформа, пока все устраивает, у меня вопрос о том, КАК ИНТЕРФЕЙС ПОСТРОИТЬ?
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.02.25;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.03 c